Direct 3D modeling
with precision.
arc is an open-source solid CAD modeler engineered for designers, engineers, and makers. Sketch 2D profiles, extrude planar faces, place parametric solids, and manipulate geometry directly with an uncluttered, responsive workspace.
0104
Built for fluid creation
Every tool is designed to feel natural and immediate. No modal roadblocks, no deep nested dialog trees. Sketch on any plane, convert closed curves to extrudable faces, and sculpt solids directly in 3D.
Parametric Primitives
Box, sphere, cylinder, cone, torus, and ground plane. Placed with exact dimensions and fully adjustable in the properties dock.
Direct 2D Sketching
Lines, polylines, circles, arcs, and rectangles. Connecting endpoints automatically creates planar faces ready for immediate extrusion.
Solid & Face Operations
Extrude, revolve, sweep, loft, fillet corners, offset profiles, and trim edges to build watertight solid bodies.
Infinite 3D Coordinate Canvas
Uncluttered canvas with infinite X/Y/Z coordinate axes. The drafting grid activates automatically when sketching or placing shapes.
Modern Floating Docks
Shapr3D-inspired left dock, top navigation bar, floating selection HUD, and an interactive 3D ViewCube for quick camera alignment.
Multi-Format CAD Interop
Standard STEP (B-rep) export/import, binary STL for 3D printing, and text OBJ files. Documents save in transparent native JSON.
0204
High-performance architecture
A clean separation between interface, communication, and geometry computation. The WebGL frontend renders at high frame rates while the Rust kernel handles solid geometry and STEP serialization.
WebGL viewport, transform gizmos, Shapr3D docks, customizable themes, and selection HUD.
Documents, layers, undo/redo history, B-rep solids, boolean operations, tessellation, and STEP parsing.
Automate workflows, generate parametric forms, or control arc externally via the local JSON bridge.
0304
Scriptable with Lua
Drop a Lua script into your plugins directory. Hook into document events or run custom algorithms to generate complex shapes, automate repetitive tasks, and inspect models.
-- Generate a parametric mounting bracket on document creation
arc.on("new", function()
local base = arc.add_entity({
type = "box",
width = 120,
depth = 80,
height = 15,
corner_radius = 4
}, "Mounting Base")
arc.log("Bracket generated: " .. base)
end)
0404
Install
Prebuilt installers are published on GitHub Releases: MSI and NSIS installers for Windows, universal DMG for macOS, and AppImage, DEB, RPM, and Flatpak for Linux.
On Linux, you can also install via the official arc Flatpak repository:
# Add the arc Flatpak remote
flatpak remote-add arc https://remgr12.github.io/arc/flatpak-repo
# Install the application
flatpak install arc com.arc.cad
Build from Source
Prerequisites: Node.js 20+ with npm, and the Rust toolchain via rustup.
# Clone repository
git clone https://github.com/Remgr12/arc.git
cd arc
# Install frontend dependencies
npm --prefix frontend install
# Launch in development mode
cargo tauri dev
To generate an optimized production bundle:
npm --prefix frontend run build
cargo tauri build