three_js 0.2.4 copy "three_js: ^0.2.4" to clipboard
three_js: ^0.2.4 copied to clipboard

Flutter package converted from threejs and three_dart to allow users to view, edit, and control 3D models.

three_js #

Pub Version analysis License: MIT

A 3D rendering engine for dart (based on three.js and three_dart) that allows users to view, edit and manipulate their 3D objects. The current builds uses angle for desktop and mobile, and WebGL2 for web applications.

Features #

Gif of dash playing a game.

This is a dart conversion of three.js and three_dart, originally created by @mrdoob and has a coverted dart fork by @wasabia.

Requirements #

MacOS

  • Minimum os Deployment Target: 10.14
  • Xcode 13 or newer
  • Swift 5
  • Metal supported

iOS

  • Minimum os Deployment Target: 12.0
  • Xcode 13 or newer
  • Swift 5
  • Metal supported

iOS-Simulator

  • Minimum os Deployment Target: 12.0
  • Xcode 13 or newer
  • Swift 5
  • Metal supported

Android

  • compileSdkVersion: 34
  • minSdk: 21
  • OpenGL supported
  • Vulkan supported

Android Emulator

  • compileSdkVersion: 34
  • minSdk: 21
  • OpenGL supported

Windows

  • Intel supported
  • AMD supported
  • Qualcom supported
  • Direct3D 11 supported
  • OpenGL supported

Web

  • WebGL2 supported. please add <script src="https://cdn.jsdelivr.net/gh/Knightro63/flutter_angle/assets/gles_bindings.js"></script> to your index.html to load the js_interop file.

WASM

  • WebGL2 supported. please add <script src="https://cdn.jsdelivr.net/gh/Knightro63/flutter_angle/assets/gles_bindings.js"></script> to your index.html to load the js_interop file.

Linux

  • Ubuntu supported (Tested on Linux Mint)
  • OpenGL supported

Getting started #

To get started add three_js to your pubspec.yaml file. Adding permissions for audio and video is required if using either item. Please use Permission Handler package to help with this.

Usage #

This project is a simple 3D rendering engine for flutter to view, edit, or manipulate 3D models.

Example #

Find the example for this API here, for more examples you can click here, and for a preview go here.

Know Issues #

All

  • MD2 annimations do not work
  • Collada animations do not work
  • Collada kinnametics does not work
  • PMREM gives weird artifacts or is completely black

MacOS

  • N/A

iOS

  • Protoplanets does not function correctly

Android

  • Morphtargets does not work on some devices
  • Some RGBELoaders cause app to crash

Windows

  • Tonemapping turns screen black
  • Some RGBELoaders cause app to crash

Web

  • Lens Flare not working correctly
  • Simplify modifer has weird artifacts

WASM

  • Simple GI does not work
  • Simplify modifer has weird artifacts

Linux

  • Tonemapping turns screen black
  • Postprocessing does not work
  • Track pad does not zoom out
  • Some RGBELoaders cause app to crash

Libraries and Plugins #

Other Libs

  • Advanced Exporters a USDZ exporter to your three_js project.
  • Audio an audio api using flutters audioplayer from pub.dev do not use with any other audio package..
  • Audio Latency an audio api using SoLoud from pub.dev do not use with any other audio package..
  • BVH CSG a bvh csg api for three_js.
  • Exporters an api to add STL, OBJ or PLY exporter for three_js.
  • Geometry an api to add complex geometries to three_js.
  • Line an api to add more line types to three_js.
  • Helpers an api to add helpers to three_js.
  • Modifers an api to add simplify or subdivision to three_js.
  • Post Processing a post processor to three_js.
  • SVG an api to add a svg importer and exporter to three_js.
  • Three JS Loader a loader to add three js json files to three_js.
  • Transfrom Controls a transfor controller for 3d objects for three_js.
  • Video Texture an api to add videos and audio to three_js do not use with any other audio package.

ADD-ONS

  • Omio a physics engine for three_js.
  • Cannon a physics engine for three_js.
  • Terrain a map generator for three_js.
  • XR a VR/AR/MR sdk for three_js. (web only)

Contributing #

Contributions are welcome. In case of any problems look at existing issues, if you cannot find anything related to your problem then open an issue. Create an issue before opening a pull request for non trivial fixes. In case of trivial fixes open a pull request directly.

43
likes
140
points
1.43k
downloads

Publisher

unverified uploader

Weekly Downloads

Flutter package converted from threejs and three_dart to allow users to view, edit, and control 3D models.

Repository (GitHub)
View/report issues

Topics

#threejs #games #animations #flutter3d #model3d

Documentation

API reference

License

MIT (license)

Dependencies

flutter, three_js_advanced_loaders, three_js_animations, three_js_controls, three_js_core, three_js_core_loaders, three_js_curves, three_js_geometry, three_js_math, three_js_simple_loaders, three_js_text

More

Packages that depend on three_js