How to use the tool
Quick answers to the questions that keep coming up. If your problem isn't here, drop us a line.
Getting started
- Set your machine type — ⚙ Settings → Machine settings → 2-axis or 4-axis.
- Set your material block — left-side panel → Material Block. Size in X / Y / Z and any offsets from the 0-line.
- Load a part — header → + Load parts. Pick an SVG, DXF or existing G-code file. (Inkscape SVG won't load? Run it through the SVG cleaner first.)
- Simulate — press ▶ Play in the footer. The wire animates through your foam block on screen.
- Get the G-code out — header → ↓ G-code (download), 🔌 USB (stream over serial) or 📡 Wi-Fi (FluidNC WebSocket).
Machine type — 2-axis vs 4-axis
A 2-axis hot-wire cutter has one X/Y tower; the wire moves in a single plane. The U/V tower mirrors X/Y automatically — both ends of the wire trace the same path. Good for extruded shapes (wings of constant section, mouldings, lettering).
A 4-axis cutter has two independent X/Y towers (the second one is called U/V). The two ends of the wire can trace different paths, so the cut becomes a ruled surface between two profiles. Good for tapered wings, lofted ducts, twisted columns, etc.
Switch in ⚙ Settings → Machine settings → Kinematics. Switching to 2-axis disables the "Two-part morph" option in the load-parts dialog automatically.
Supported hardware
The tool exports standard 4-axis G-code (G01 X Y U V Z W F plus M8/M9 for the hot wire). Anything that eats that format will work, including:
- ESP32 + FluidNC — reference target. USB-Serial (115200 baud) and Wi-Fi WebSocket both supported from the browser.
- Arduino Mega + RAMPS 1.4 — the original Foamcube V4 stack. Use the ↓ G-code button and an SD card, or any USB streamer you already have.
- GRBL / grbl_ESP32 — works for the 2-axis modes (XY only; GRBL doesn't speak U/V natively).
- Mach3 / LinuxCNC — download the .gcode file and feed it to whatever streamer you normally use.
If you have weird hardware, just hit ↓ G-code, open the file in a text editor and you'll see plain-vanilla G-code you can post-process however you like.
Streaming G-code over USB
Click 🔌 USB, pick your controller's serial port, the streaming dock appears (bottom right). Pause / Resume / Abort buttons there. Abort sends a soft-reset (Ctrl-X) so the controller stops mid-motion.
Browser support: Chrome, Edge, Opera, Arc, Brave. Firefox and Safari don't have WebSerial yet — use the download button + your usual streamer.
The page has to be served over HTTPS (or be on http://localhost) for WebSerial to work. cncfoam.com is HTTPS so you're fine.
Streaming over Wi-Fi (FluidNC)
Click 📡 Wi-Fi, type your machine's IP address or mDNS hostname (e.g. foamcube.local), click Connect. Same streaming dock + same controls as USB.
Works against FluidNC's built-in WebSocket endpoint on port 81. The machine address you enter is remembered for next time.
Common warnings
"Part doesn't fit the cutter envelope" — your cut path is bigger than your machine. Scale the part down (OBJECT bar), move the 0-line (⚙ Settings → Origin marker), or set a larger machine envelope.
"Part exceeds the material block" — the cut would poke out of the foam piece you have loaded. Scale down or grow the material block in the left-side panel.
UI cheatsheet
- Orbit — left-drag. Pan — shift-drag or right-drag. Zoom — wheel.
- Play / Pause — Space. Rewind — R. Reset view — Home or F.
- The mini-preview window mirrors the main viewer's mouse controls. Drag the bottom-right corner to resize it.
Accounts
You can use the tool fully without signing in — load, simulate, download, even stream over USB. An account unlocks saving named projects, publishing shapes to the (upcoming) library, and a few future bits like tester-only firmware. Email verification is required at signup.
Still stuck?
Send us a message with a screenshot and what you were trying to do. We read every one.