Honu Robotics' glTF asset framework for Gazebo and RViz. This is a beta release: two documents are ready for review, and the rest of the repository is planned work still in development. This project includes the following:
Only these two documents are evaluated in the beta. Both are being tried on real models while their open issues are resolved, and each open issue is marked where it occurs in the text.
- Honu glTF Asset Profile, docs/profile.md. This document provides normative guidance that narrows, extends and clarifies the glTF 2.0 standard and makes it actionable for authoring 3D assets for robotics applications. The profile also aligns the robotics standards and conventions (ISO and ROS REP) and terminology in the context of glTF assets. The document describes normative rules for 3D visual robotic assets that MUST and SHOULD be adhered to by all.
- Honu glTF Asset Workflow, docs/workflow.md. This document describes the step-by-step process of asset commissioning, authoring and conformance testing, and specifies who does what.
- Coordiante System Orientation Walkthrough, docs/walkthroughs/coordinate_orientation_demo.md. This document illustrates the coordinate conventions of Blender, glTF 2.0 and Gazebo/RVIZ (ISO 9787 and ROS REP103) and how transfering from one to the other is done to maintain consistency across the toolchain.
The items below are part of the plan and are listed so that reviewers know what is coming. They are incomplete, some were written against earlier drafts of the profile, and none of them is evaluated in the beta. Where one of them disagrees with the profile or the workflow, the profile and the workflow govern.
Supporting documentation:
- Walkthroughs, docs/walkthroughs/. Complete step-by-step examples and how-tos, each run end to end with the tools' real output. Three so far: a single mesh taken from Blender to Gazebo and RViz, exporting from Blender, and checking a delivery.
- Assessments, docs/assessments/ and assess/. Measurements of what glTF assets contain, criterion by criterion. Assets published by other projects are measured to learn what is in the field, not as a basis for the profile's rules, since a field asset is as likely as not to be non-compliant.
assess/holds the criteria, the list of assets, the written findings and the report generated bygltf-assess. Audits of our own deliveries are planned and will use the same tools. - Reference, docs/reference/. The project glossary, and background for the profile's rules: coordinate systems, Blender's glTF export options, PBR materials and notes on glTF itself.
Tools and utilities, with their source code:
- Command-line tools, src/gltf_robotics/ with tests in tests/. A Python package with four commands:
gltf-checktests a file against the profile's rules,gltf-manifestwrites a part's manifest into its file from the commission,gltf-summarydescribes what a file contains without judging it, andgltf-assessmeasures a list of assets published elsewhere. - Probes, probe/. Tools for questions that reading a file cannot answer.
glb_probeloads a file through Gazebo's own loader and reports what was built, and a marker generator writes test assets for coordinate-system questions. - Figures, figures/. A Python drawing kit and the scene scripts that generate the coordinate-system illustrations used in the documentation.
Models:
- Examples, examples/. The files behind the walkthroughs: the Blender source, exported
.glbfiles, and the SDF, URDF and RViz configuration that load them. - Exemplar, exemplar/. Planned as a reference model that satisfies the profile, with counterexamples that deliberately do not. At present it holds only a minimal glTF file used to explain the file structure.
- Demo, demo/. A Blender script that builds an axis-marker scene in Blender's own convention, front toward −Y, so that a default export conforms to the profile, for seeing how each consumer treats the axes.
Other:
- Reference documents, refs/. A local placeholder for licensed standards the documents cite, such as ISO 9787. Its contents are not committed or published.
Install the command-line tools editable into a venv in the clone, so edits under src/ take effect without reinstalling, and link the commands onto your PATH. From the root of the clone:
python3 -m venv .venv
.venv/bin/pip install -e '.[dev]'
ln -s "$PWD"/.venv/bin/gltf-{check,summary,manifest,assess} ~/.local/bin/Re-run the pip install line only when pyproject.toml changes, such as a new command or dependency. .venv/bin/pytest runs the tests.