three_js_urdf_parser 0.1.0 copy "three_js_urdf_parser: ^0.1.0" to clipboard
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:

  1. Migrate to three_js: The most active and feature-complete Three.js port for Flutter.
  2. Improve Performance: Leverage the optimized rendering pipeline of three_js.
  3. Enhance Flexibility: Added support for custom PBR materials and improved asset loading via rootBundle.
  4. 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_js ecosystem.
  • 📦 Asset-First: Optimized for loading URDF and meshes directly from Flutter assets.
  • 🎨 Custom Materials: Use materialCb to apply MeshStandardMaterial (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 using rootBundle for better cross-platform (Web/Mobile) support.
  • Vector/Matrix API: All matrix operations now use three_js native methods (e.g., fromNativeArray instead of fromArray).
  • Material Customization: The materialCb in URDFLoaderOptions provides direct access to the Link and Visual objects.

📂 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.

1
likes
130
points
9
downloads

Documentation

API reference

Publisher

verified publisherdebuggerx.com

Weekly Downloads

A urdf parser extension for three_dart that also includes a dae/stl loader.

Repository (GitHub)
View/report issues

License

Apache-2.0 (license)

Dependencies

collection, flutter, path, three_js, xml

More

Packages that depend on three_js_urdf_parser