three_js 0.1.2
three_js: ^0.1.2 copied to clipboard
Flutter package converted from threejs and three_dart to allow users to view, edit, and control 3D models.
three_js #
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 #
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
- No longer supported due to IOSurface issue, please use override to flutter_angle: ^0.1.0 for testing on simulator.
Android
- compileSdkVersion: 34
- OpenGL supported
- Vulkan supported
Windows
- Intel supported.
- AMD supported.
- Direct3D 11 and OpenGL supported
Web
- WebGL2 supported
WASM
- Currently not supported due to WebGL2RenderingContext conversion issue.
Linux
- Unsupported
Getting started #
To get started add three_js to your pubspec.yaml file.
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
- VideoTexture only works for web
MacOS
- Audio has a bug
iOS
- Protoplanets does not function correctly
Android
- Morphtargets dones not work
- Some RGBELoaders cause app to crash
Windows
Web
- Lens Flare not working correctly
- Postprocessing does not work
- Track pad has some bugs
Librarues and Plugins #
ADD-ONS
- Omio a physics engine for three_js
- Cannon a physics engine for three_js
- Terrain a map generator for three_js
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.