Skip to content

jackvial/assembler0

Repository files navigation

Assembler 0 - A Self-Replicating Robot Framework

Assembler 0

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.

Overview

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.

System Architecture

Hardware

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.

Software

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.

Datasets

Training data for imitation learning are stored in LeRobot format:

Tools for dataset management:

  • LeRobot Data Studio9 — Merge, clean, and visualize datasets
  • Recording scripts included in the robot package

Milestone 1

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.

Quick Start

1. Install

# 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

2. Build Hardware

3. Calibrate & Operate

./so101_calibrate.sh   # set ports, IDs, permissions
./so101_teleoperate.sh # run leader–follower teleop

For camera setup, recording workflow, and dataset cleaning, see the Robot Package README.

Roadmap

  • 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)

Contributing

Assembler 0 is an open-ended framework intended for collaborative exploration and incremental contribution.

License

Released under the MIT License.

References

Footnotes

  1. Kinematic Self-Replicating Machines (Freitas & Merkle)

  2. RepRap Project Paper (Jones et al., 2007)

  3. ACT: Action Chunking with Transformers

  4. HIL-SERL: Human-in-the-Loop Robotic Reinforcement Learning

  5. 6DOF Robot End-Effector-Based 3D Printing

  6. ReACT: Synergizing Reasoning and Acting in Language Models

  7. Koch's Low-Cost Robot

  8. LeRobot

  9. LeRobot Data Studio

  10. Kinematic Self-Replicating Machines - Closure

  11. SO101 Arm Assembly Guide

About

A Self-Replicating Robot Framework

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published