three_js_urdf_parser 0.1.0
three_js_urdf_parser: ^0.1.0 copied to clipboard
A urdf parser extension for three_dart that also includes a dae/stl loader.
three_js_urdf_parser #
A Flutter library for parsing and rendering URDF (Unified Robot Description Format) files, powered by the three_js engine.
✈️ Online DEMO #
https://www.debuggerx.com/three_js_urdf_parser/
🙏 Acknowledgements & Origins #
This project is a major fork of flutter-urdf-parser originally developed by JayKay135.
I would like to express my deep gratitude to the original author for providing the core logic and foundation for URDF parsing in Flutter.
Why the Fork and Rename? #
The original library was built on three_dart and flutter_gl, which are no longer actively maintained and face compatibility issues with modern Flutter versions.
I created three_js_urdf_parser to:
- Migrate to three_js: The most active and feature-complete Three.js port for Flutter.
- Improve Performance: Leverage the optimized rendering pipeline of
three_js. - Enhance Flexibility: Added support for custom PBR materials and improved asset loading via
rootBundle. - Modernize API: Updated the entire codebase to support Dart 3.x and the latest 3D API standards.
✨ Features #
- 🚀 Native three_js Integration: Seamlessly works with the
three_jsecosystem. - 📦 Asset-First: Optimized for loading URDF and meshes directly from Flutter assets.
- 🎨 Custom Materials: Use
materialCbto applyMeshStandardMaterial(PBR) or any other material dynamically based on link names. - 🛠️ Extensible Mesh Support: Includes updated loaders for STL and Collada (.dae).
- 📐 Accurate Parsing: Robust handling of joints, links, visual, and collision tags.
🚀 Getting Started #
Installation #
Add this to your pubspec.yaml:
dependencies:
three_js: ^0.2.7
three_js_urdf_parser: ^0.1.0
🔧 Major Changes from Original #
If you are migrating from the original flutter-urdf-parser, please note:
- Namespace Change: Imports now refer to
package:three_js/three_js.dart. - Loading Method:
load()now defaults to usingrootBundlefor better cross-platform (Web/Mobile) support. - Vector/Matrix API: All matrix operations now use
three_jsnative methods (e.g.,fromNativeArrayinstead offromArray). - Material Customization: The
materialCbinURDFLoaderOptionsprovides direct access to theLinkandVisualobjects.
📂 Supported Formats #
| Format | Status | Loader |
|---|---|---|
| URDF | Supported | URDFLoader |
| STL | Supported | STLLoader |
| DAE (Collada) | Supported | ColladaLoader |
| OBJ | Supported | Via three_js_helpers |
📄 License #
This project inherits the license of the original repository (Apache-2.0). See the LICENSE file for details.
🤝 Contributing #
Contributions are welcome! If you find a bug or have a feature request, please open an issue or submit a pull request.