Advanced Metal Research
GitHub Contact AMR

Install the toolchain

On this page
  1. Host
  2. Tools
  3. Clone
  4. Check the install
  5. Which component needs what
  6. Next

RosieOS is a monorepo of C++, Go, TypeScript and Python components. There is no single installer: you install a small set of standard tools, then each component builds with its own make, go, npm or pixi command.

For a simulated cell you need the tools marked Simulation. The rest depends on what you are working on.

Host#

Use Linux x86-64. Continuous integration (CI) runs on Ubuntu 22.04, which is the reference. WSL2 on Windows works too.

  • The dev stack reads /proc and uses setsid, so it runs on Linux only.
  • The OLP launcher builds its server for linux/amd64.
  • The Tesseract environment needs glibc 2.35 or later.
  • In WSL, keep the working sockets on a Linux filesystem. Unix sockets cannot bind under /mnt/c. The dev stack uses $XDG_RUNTIME_DIR or $TMPDIR, so point TMPDIR somewhere like /dev/shm/rosie if yours is on the Windows drive.

A real cell host also needs a PREEMPT_RT kernel and the IgH EtherCAT master. That is covered in Install rt-core on a cell host, not here.

Tools#

ToolVersionNeeded forUsed by
C++17 compiler, make, pkg-config, pthreadGCC from Ubuntu 22.04 build-essentialSimulationrt-core, both motion servers, pendants
Go1.26.2 (go.mod declares go 1.24 with toolchain go1.26.2)Simulationrt-control, rtctl, the SDK, OLP server, virtual pendant bridge
Python 3 and curlAny currentSimulationdev-stack.sh and local-rt-core.sh helpers
Node.js and npm22 (CI pins 22.13.1)Simulation (OLP app)OLP UI, virtual pendant UI, TypeScript checks
pixiCurrent; each project pins its own lock fileSimulation (OLP app)tesseract/v1 (required by OLP), weld_planner/v1, cadquery/v1
NVIDIA driver and CUDA 12 or later—Weld planning onlyweld_planner/v1 motion environment
nats-server2.14 or laterOptionaldev-stack nats service
Qt 5 (Widgets, Gui, Xml, Network, Qml) and Assimp, found through pkg-config—Pendant v5 onlysteamdeck/real/v5
IgH EtherCAT master1.6.9 by defaultReal hardware onlymake live in rt-core

On Ubuntu 22.04, this covers the native build dependencies CI installs:

sudo apt-get update
sudo apt-get install -y build-essential pkg-config python3 curl git git-lfs

Install Go 1.26.2, Node 22 and pixi from their upstream installers, and put them on your PATH. dev-stack.sh puts ~/.rosie/bin, ~/.rosie/go-1.26.2/bin and ~/.rosie/node-22.13.1/bin in front of your PATH. You don't need those directories. If they don't exist, it uses whatever your PATH already finds.

Note

Some READMEs in the repository show commands such as ./rosie.sh …, .\rosie.ps1 … or rosie … v1 …. Those belong to an internal tool that is not part of RosieOS, so they will not work from a clone. Use the make, go, npm, pixi and dev-stack.sh commands in these docs instead. The operator CLI in this repository is rtctl.

Clone#

Install Git LFS before you clone. Sample STEP parts and some mesh sources are stored in LFS.

git lfs install
git clone https://github.com/advanced-metal-research/RosieOS.git
cd RosieOS

If you cloned without LFS, run git lfs pull in the checkout.

Check the install#

Build the real-time core and its tools. This needs only the compiler and Go:

make -C rt-core control sim
ls rt-core/build

You should see rt-control, rtctl, benchdrive, rt-natspublisher and rosie-rt-core-sim.

For the OLP app, install the Tesseract environment and the UI packages once:

(cd tesseract/v1 && pixi install --locked)
(cd offline-programming/v1/ui && npm ci)

To plan welds, install the weld planner's environments. The default environment (seam detection) runs on the CPU. The motion environment needs an NVIDIA GPU with CUDA 12 or later:

cd weld_planner/v1
pixi install -e default
pixi install -e motion

Which component needs what#

ComponentDirectoryBuildNeeds
Real-time core and control APIrt-coremake control sim (simulation), make live (hardware)C++17, Go; IgH for live
Cartesian motion servermotion-server/v1make allC++17, a built rt-core
Dense trajectory daemonmotion-server/joint-trajectory/v1make allC++17
Offline programming serveroffline-programming/v1start-offline-programming.sh builds itGo, Tesseract env
Offline programming UIoffline-programming/v1/uinpm ci, then npm run devNode 22
Weld plannerweld_planner/v1pixi install -e default / -e motionpixi; CUDA for motion
Virtual pendantsteamdeck/virtualgo build ./cmd/local; v1/ui: npm ciGo, Node 22
Pendant v5steamdeck/real/v5make allQt 5, Assimp, Node

Next#

Start the simulated cell in the Quickstart.