The Linter & Bridge for Robotics
LinkForge is The Linter & Bridge for Robotics.
In robotics, creativity starts in your head โ but getting that idea into a simulator usually means hours of writing XML, fixing joint limits, and fighting coordinate systems.
LinkForge removes that friction. It acts as both a Linter and a Bridge, allowing you to model your robot in Blender as naturally as sculpting a 3D scene, while guaranteeing the output is rigorous, simulation-ready code.
- Forge Structure: Define links, joints, masses, and inertias visually.
- Lint & Validate: Catch structural and physics errors before they break your simulation.
- Perceive & Control: Attach sensors and configure
ros2_controlinterfaces. - Export Production Code: Generate clean, hardened URDF/XACRO files.
From idea โ hardened robot model โ ready for simulation. All inside Blender.
| Feature | Support | Details |
|---|---|---|
| Links | โ Full | Visual/Collision Geometry, Materials, Automatic Physics |
| Joints | โ Full | All 6 types (Fixed, Revolute, etc.) + Mimic Joints |
| Sensors | โ Full | Camera, LiDAR, IMU, GPS, Contact, Force/Torque |
| Control | โ Full | ros2_control Dashboard & Gazebo Plugin Integration |
| Validation | โ Pro | Linter for Robotics catches structural errors before export |
| Fidelity | โ Pro | Round-Trip Precision for lossless Import/Export |
| Formats | โ Full | URDF 1.0, XACRO (Macros, Properties, Multi-file) |
- Bidirectional Workflow: Seamlessly import existing URDF/XACRO files for editing or build complex robot models from scratch using Blender's native tools.
- Production-Ready Export: Generates strictly compliant URDF/XACRO files optimized for ROS, ROS 2, and Gazebo. Includes ROS-Agnostic Asset Resolution, allowing complex robots to be imported and edited on any platform without requiring a ROS installation.
- Linter for Robotics (The Safety Net): Built-in integrity checker inspects robot topology, physics data, and joint limits. It catches "exploding robot" errors (negative inertias, detached links, circular chains) before you export.
- ROS2 Control Support: Automatically generates hardware interface configurations for
ros2_controlvia a centralized dashboard, compatible with Gazebo and physical hardware. - Complete Sensor Suite: Integrated support for Camera, Depth Camera, LiDAR, IMU, GPS, Force/Torque, and Contact sensors with configurable noise models.
- Automatic Physics: Scientifically accurate calculation of mass properties and inertia tensors for both primitive shapes and complex arbitrary meshes.
- Advanced XACRO Support: Intelligent extraction of repeated geometry into macros and shared materials, producing maintainable and modular code.
- Round-Trip Fidelity: The Import โ Edit โ Export cycle preserves all data with absolute precision, including sensor origins, transmission interfaces, and custom user properties.
Requirements: Blender 4.2 or later
- Open Blender โ Edit > Preferences > Get Extensions
- Search for "LinkForge"
- Click Install
- Download the
.zippackage for your platform (e.g.,linkforge-x.x.x-windows-x64.zip) from Latest Releases - Open Blender โ Edit > Preferences > Get Extensions
- Click dropdown (โ) โ Install from Disk
- Select the downloaded
.zipfile
-
Create Links
- Select a mesh โ Forge panel โ Create Link
- Configure mass, inertia, and collision geometry in the Physics section.
- Repeat for all robot parts.
-
Connect with Joints
- Select child link โ Forge panel โ Create Joint
- Choose joint type (Revolute, Prismatic, Continuous, Fixed, etc.)
- Set limits, axis, and dynamics in the Joint section.
-
Add Sensors (Optional)
- Select a link โ Perceive panel โ Add Sensor
- Configure sensor properties in the Sensor section.
-
Configure Control (Optional)
- Go to the Control panel โ Enable Use ROS2 Control
- Click
+to add joints to the Joint Interfaces list. - Configure Command/State interfaces (Position, Velocity, Effort).
-
Validate & Export
- Go to the Validate & Export panel.
- Click Validate Robot to check for integrity errors.
- Choose format (URDF/XACRO) and click Export.
- Open the LinkForge sidebar tab (N-panel in 3D Viewport).
- In the Forge panel, click Import URDF/XACRO.
- Select your file and edit the robot structure normally.
- Export back via the Validate & Export panel.
Complete examples in examples/ directory:
roundtrip_test_robot.urdf: A comprehensive robot containing ALL 6 URDF joint types (fixed, revolute, continuous, prismatic, planar, floating), plus sensors. Perfect for testing full roundtrip capabilities.mobile_robot.urdf: A simple mobile robot base.diff_drive_robot.urdf: A differential drive robot with wheels.quadruped_robot.urdf: A 4-legged robot demonstrating complex kinematic chains and multi-link assemblies.
- User Guide - Comprehensive tutorials and getting started.
- API Reference - Technical reference for developers.
- Architecture Guide - System design and internals.
- CHANGELOG - Version history.
- Examples: examples/
# 1. Install 'just' (Command Runner)
brew install just
# 2. Clone repository
git clone https://github.com/arounamounchili/linkforge.git
cd linkforge
# 3. Install dependencies
just install# Run all tests (Core + Blender)
just test
# Run only core tests
just test-core
# Run with coverage
just coverage# Run all checks (Lint + Types)
just check
# Fix linting issues
just fixTo package LinkForge as a Blender extension:
# Build the production-ready .zip
just buildThe package will be created in the dist/ directory.
- Example Files - Sample URDF files
- Community Forum - Ask questions
- v1.0.0: Core URDF/XACRO Export, Sensors, &
ros2_controlbasics. - v1.1.0: Enhanced Documentation, Workflow Polish, & Bug Fixes.
- v1.2.0: Architectural Stability (Hexagonal Core, Numerical Precision).
- v1.3.0: High-Fidelity Expansion (MJCF/MuJoCo & SDF/Gazebo support).
- v1.4.0: Mechanical Debugging (Real-time IK & Collision Interference Validation).
- v2.0.0: Intelligence-Driven Rigging (AI-assisted geometry analysis & Auto-Rigging).
For a deep dive into our long-term strategy, the Digital Twin philosophy, and our technical roadmap for AI and Kinematics, please read our Project Vision.
We believe in being upfront about what LinkForge doesโand what it doesn't do.
- Standard Compliance: We guarantee 100% compliance with the official URDF/XACRO specifications. Your robot will work in any standard parser.
- The "Wild URDF" Limit: We aim for lossless Round-Trip (Import โ Edit โ Export). However, if you import a "Wild" URDF containing non-standard tags, custom XML comments, or parser-specific hacks, we do not guarantee their preservation. We clean the code to ensure validity.
- Beta Features: Advanced features like
ros2_controlare evolving. We commit to vigilance in updating them, but syntax changes in ROS 2 may require extension updates.
We welcome contributions! LinkForge is an community-driven project.
- ๐ Review our Contributing Guide.
- ๐๏ธ Check our Architecture to understand the internals.
- ๐ฌ Join the conversation on GitHub Discussions.
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details. For third-party component licenses, see THIRD-PARTY-NOTICES.md.
Thanks goes to these wonderful people (emoji key):
arounamounchili ๐ป ๐จ ๐ค ๐ง |
MagnusHanses ๐ |
GeKo-8 ๐ |
This project follows the all-contributors specification. Contributions of any kind welcome!
Made with โค๏ธ for roboticists worldwide
Precision engineering meets creative modeling.
