The assembly bench for Anodized.
Anodized designs one mechanism at a time. Arcmelt takes those mechanisms and puts them on a robot: import an Anodized design, drag its mechanisms onto a swerve chassis, size and rotate them, and drive the robot's states and triggers — all in one view.
npm install
npm run dev- Import an Anodized
.jsonfile. Each mechanism box inside it becomes something you can mount. - Place mechanisms on the robot in a side (or front) view. Drag to move, drag the handles to resize, hold Shift while resizing to keep the original proportions.
- Draw rectangles, circles, and curves on the same canvas for reference — a bumper, a belly pan, a game piece — with the same move/resize/rotate controls. These are for looks only: they never affect collision checks or mass.
- Drive it. Click a state button to move a mechanism, or flip a trigger switch to run the design's real rules — the same triggers and transitions you set up in Anodized, now live on the assembled robot.
- Check fit. A second Deck tab shows the robot from above, flags parts that overlap or hang too far off the frame, and reports total mass and center of gravity.
- Save / Open an Arcmelt file (
.json) to keep your layout. It stores where each mechanism came from, not a copy of it — so if you edit the mechanism in Anodized, re-import it and the robot picks up the change.
src/anodized/ copied from Anodized unchanged — do not edit
src/import/ reads an Anodized file, finds its mountable mechanisms
src/assembly/ chassis, placement, collision/mass checks, shapes
src/render/ the two views (side/front canvas, top-down deck)
src/triggers/ runs the states and triggers on the assembled robot
- No 3D view yet — side, front, and top only.
- A collision check compares mechanisms at their current state, not every position they pass through on the way there.
- Unequally-rigged cascade elevators are drawn as if evenly rigged.