A low-cost, open-source robotics platform for researching progressive self-replication and autonomous assembly.
Assembler 0 is an experimental starting point for a robotic system that can progressively reproduce portions of its own structure. The framework combines low-cost 3D-printed arms, open-source control software, and imitation-learning datasets to explore partial self-replication — where structural components can be reproduced internally while relying on externally supplied electronics, actuators, and power.
Inspired by the self-replicating machine concepts first proposed by John von Neumann and later developed by Freitas and others to macro-kinematic systems1, this project builds on recent advances in robotic learning and additive manufacturing. While earlier efforts like the RepRap Project achieved partial material replication but not assembly2, today's technologies enable new possibilities: policies like ACT3 and HIL-SERL4 support dexterous manipulation, low-cost 3D-printed robot arms have become accessible, 6DOF robot end-effector-based 3D printing5 allows printing complex parts directly from an arm, and tool-using LLMs following the ReACT6 paradigm offer high-level reasoning and planning capabilities.
Rather than aiming for full self-replication, Assembler 0 provides a research and prototyping framework to study how mechanical, informational, and manufacturing processes can progressively transition from exogenous (externally supplied) to endogenous (internally produced) components.
A modular three-arm setup based on open, 3D-printable designs:
- SO101 Gripper Arm — General assembly manipulation tasks
- SO101 Screwdriver Arm — Assembly tasks requiring screwdriving
- SO101 3D Printer Arm — For replication of printable structural components (coming soon)
- Bimanual Configuration — Coordinated teleoperation of gripper and screwdriver arms for complex assembly tasks. The printer arm will operate via preprogrammed G-code tool paths rather than trained policies (coming soon)
An earlier prototype was based on Koch's Low-Cost Robot7, but development has since shifted to the SO101 platform for its superior capability, ease of assembly, and growing community adoption.
All printable components and CAD files are available in assembler0-hardware.
The control stack builds on LeRobot8 for exploring imitation learning and reinforcement learning:
- SO101 Gripper Arm: Standard gripper control (implementation)
- SO101 Screwdriver Arm: Specialized screwdriver manipulation control (implementation)
- SO101 3D Printer Arm: G-code-based control for additive manufacturing (coming soon)
See the robot package documentation for API details and usage examples.
Training data for imitation learning are stored in LeRobot format:
- Screwdriver 391 — 391 demonstrations of screwdriving tasks
Tools for dataset management:
- LeRobot Data Studio9 — Merge, clean, and visualize datasets
- Recording scripts included in the robot package
Freitas & Merkle define the concept of closure in Kinematic Self-Replicating Machines10.
Assembler 0's first research milestone focuses on demonstrating pathways toward partial closure rather than achieving full closure outright.
| Closure Type | Endogenous (internal) | Exogenous (external) |
|---|---|---|
| Material | 3D-printed structural components | Servo motors, screws, wiring, electronics |
| Energy | None | Wall power / battery supply |
| Information/Control | Autonomous operation via trained policies; preprogrammed 3D-printing toolpaths | Initial training |
Milestone 1 Goal:
Establish a baseline platform capable of complete information/control closure and partial material closure through 3D-printed mechanical reproduction.
Energy closure is considered out of scope for this phase.
# Clone the repository
git clone https://github.com/jackvial/assembler0
cd assembler0
# Install the UV package manager
curl -LsSf https://astral.sh/uv/install.sh | sh
# Create a virtual environment and install dependencies
uv venv && source .venv/bin/activate
uv sync- Print parts from assembler0-hardware
- Follow the SO101 assembly guide11 for base arm construction
./so101_calibrate.sh # set ports, IDs, permissions
./so101_teleoperate.sh # run leader–follower teleopFor camera setup, recording workflow, and dataset cleaning, see the Robot Package README.
- Koch-based screwdriver arm hardware
- Koch-based screwdriver arm LeRobot integration
- Koch-based gripper arm with magnetic tip hardware
- Koch-based gripper arm with magnetic tip hardware LeRobot integration
- Dataset of 290 screwdriving demonstrations (Koch arm)
- SO101 Screwdriver Arm hardware
- SO101 Screwdriver Arm LeRobot integration
- SO101 Gripper Arm hardware (standard arm hardware)
- SO101 Gripper Arm LeRobot integration (standard SO101 LeRobot integration)
- SO101 3D Printer Arm hardware (coming soon)
- SO101 3D Printer Arm control software (G-code driven, planned)
Assembler 0 is an open-ended framework intended for collaborative exploration and incremental contribution.
Released under the MIT License.
