XTRUDE CAD

Draw it.
Pull it.
Print it.

The simple, fast push & pull modeller that Linux makers never had. Draw a face, type a dimension, pull it to size, send it to your slicer.

Not another parametric CAD. No feature tree, no constraint solver, no engineering overhead: just robot parts, brackets, enclosures and PCB mounts, modelled in minutes.

Open source · GPL-3.0 · Linux first · No account, no cloud

Xtrude CAD window: an angle bracket with two holes being pulled with Push/Pull, a 7.18 mm distance shown on the face and in the value box at the bottom right
Push/Pull on an angle bracket. The distance follows the mouse, or type it in the value box.

A push & pull modeller, not another parametric CAD

Linux already has excellent parametric CAD for engineering work. What it lacked was a simple, open-source modeller for makers who just want to draw a part and print it. Xtrude CAD fills that gap. It complements parametric tools; it does not try to replace them.

Xtrude CAD is

  • Direct push & pull: draw a face, pull it into a solid
  • Fast drawing with typed, exact millimetre dimensions
  • Made for small printable parts: brackets, mounts, enclosures, jigs
  • A light native app that starts instantly
  • Watertight solids, exported straight to your slicer

Xtrude CAD is not

  • A feature tree with a design history to manage
  • A constraint solver to satisfy before you can move on
  • A B-rep engineering kernel with STEP export
  • An assembly, drawing-sheet or simulation suite
  • A clone of FreeCAD, or of anything else

Need design history, constraints or assemblies? FreeCAD is the right tool, and the two work well side by side.

Quick to draw, exact to print

Most functional parts are simple: a bracket, a spacer, a mount, a jig. They need exact dimensions, not a design history. Xtrude CAD is built for makers, robotics hobbyists and engineers who want that part drawn and on the printer bed in minutes.

01

Drawn in minutes

Draw a face, pull it to size. No feature tree to plan and no constraints to solve, so simple parts stay simple.

02

Exact, not approximate

Type the dimension as you draw. Millimetre documents and 64-bit geometry keep a 3 mm hole at 3 mm.

03

Printable by construction

Every modelling step is checked for watertightness, so the export slices cleanly without a mesh repair pass.

04

Yours, on your machine

No account, no cloud, no telemetry, no subscription. Free software, an open file format, and files that stay on your disk.

Ready to model, out of the box

A complete modelling toolbox in one small native app. No account, no cloud, no subscription. Open it and start drawing.

Drawing tools

Draw flat faces with exact dimensions, then build on them.

  • LineEdges that close into faces
  • RectangleAxis-aligned or rotated
  • Circle & ArcHoles, bosses, rounded slots
  • Text3D lettering for labels and logos

Modelling tools

Turn flat faces into solids with direct, visual operations.

  • push/pullExtrude faces, cut through-holes
  • offsetWalls and lips at a fixed distance
  • sweepRun a profile along a path
  • filletRound edges to a typed radius

Precision without the overhead

Precision

Type the number,
get the number

Every tool reads typed values as you draw. Start a line, type 42.5, press Enter. Documents are in millimetres by default and geometry is stored in 64-bit floating point, so a 3 mm hole stays a 3 mm hole.

  • Millimetre-first documents
  • f64 geometry throughout
  • Snaps to endpoints, midpoints, edges and intersections
Push/Pull
Endpoint
42.5 mm
Printable

Solids that slice cleanly

A watertightness guard checks that modelling steps keep a solid closed, so what you export is something your slicer can actually print. Combine and cut parts with solid tools, then export a clean STL or 3MF.

  • Watertightness guard on every operation
  • Union, subtract, trim, intersect, split
  • Volume shown for every solid
Properties
Type
Solid Group
Name
servo-bracket
Volume
12 480 mm³
Status
● Watertight
Native

Written in Rust, drawn on your GPU

Xtrude CAD is a single native binary that starts instantly. Rust keeps the geometry kernel fast and robust, and wgpu renders on Vulkan, Metal, DX12 or OpenGL. There is no Python or Qt runtime to install or wait on.

  • Linux first; Windows and macOS supported
  • Undo/redo: one step per action
  • Headless xtrude-convert for batch export
terminal
$ xtrude-convert bracket.xtrude bracket.stl
$ xtrude-convert motor.step motor.stl
$ ls
bracket.stl  bracket.xtrude  motor.step  motor.stl
STEP import

Model around the parts you already have

Open a servo, a motor or a board modelled in another CAD tool and design the bracket around it. The exact surfaces are tessellated into flat faces you can measure and snap to. Xtrude CAD imports STEP; it does not export it.

  • STEP AP203, AP214 and AP242
  • Each part keeps its name, placement and colours
  • 0.01 mm chord tolerance by default
Xtrude CAD window: a servo imported from STEP, its body and two horns pulled apart, with the Model panel listing each part's name and size

How it works

A small set of Rust crates. The geometry kernel has no GUI or GPU dependencies, so it can be tested and reused on its own.

xtrude-app egui interface · tools · inference · value box
xtrude-renderwgpu · WGSL shaders
xtrude-modelselection · groups · undo/redo
xtrude-io.xtrude · .igz · STL · 3MF · OBJ · glTF · DAE · DXF · .skp · STEP
xtrude-core mesh kernel · f64 · push/pull · offset · booleans · snapping

Frequently asked questions

Is Xtrude CAD free?

Yes. It is free and open-source software under the GPL-3.0-or-later license. You can use it for any project, study the code, modify it and share it. There is no account, no subscription and no telemetry.

Who is it for?

Anyone who designs small functional parts for 3D printing: makers, robotics hobbyists, and engineers who need a quick jig, adapter or spacer. If the part is a bracket, a mount, an enclosure or a spacer, Xtrude CAD is meant to get you from idea to slicer quickly.

Why another CAD tool? Is it a FreeCAD clone?

Free modelling tools tend to be powerful but heavy (parametric CAD), precise but code-only (scripted CAD), or easy but tied to a browser and an account (cloud modellers). Xtrude CAD aims at the space in between: direct and visual, exact to the typed millimetre, and fully local, as a native app that runs well on Linux. It is not a FreeCAD clone: it deliberately has no feature tree, no constraint solver and no B-rep kernel, because simple printable parts do not need them.

How is it different from a parametric CAD tool?

Xtrude CAD is a direct modeller: you push and pull faces instead of editing a feature tree. That makes simple functional parts (brackets, spacers, enclosures, mounts) very quick to draw and adjust. If you need design history, constraints or assemblies, a parametric tool such as FreeCAD is the better choice. The two complement each other.

Can I make parametric or repeatable parts?

Not with a feature tree, which Xtrude CAD deliberately leaves out. Repeatable parts are planned through sandboxed Lua extensions: small generators that build a part from a few values, such as a spacer of a given size or a box with a lid.

Does it export STEP?

No, and it is not planned. Xtrude CAD is a mesh modeller by design: it models with a precise mesh kernel (64-bit geometry, watertight solids), which is what slicers consume. It exports STL, 3MF, OBJ, glTF and COLLADA. Exact-surface (B-rep) editing and STEP export are out of scope.

It does import STEP files (AP203, AP214 and AP242), so you can design a bracket or an enclosure around a part modelled in another CAD tool. The exact surfaces are tessellated into flat faces (0.01 mm chord tolerance by default), and each part keeps its name, placement and colours. The result is a faceted copy to measure, snap to and model around, and a solid you can print or combine when the part is closed. It also imports DXF and .skp files.

Why is it written in Rust?

For responsiveness, robustness and simple distribution. Interactive geometry has to stay smooth on large models, a modeller must not crash or corrupt a part, and a single native binary is easy to install. The geometry kernel has no GUI or GPU dependencies, so it is tested on its own and reused by the command-line converter.

Which platforms does it run on?

Linux is the primary target. Windows and macOS are expected to work through wgpu, but get less testing. You need a GPU driver with Vulkan, Metal, DX12 or OpenGL ES 3 support.

What is its relation to IngeTrazo?

Xtrude CAD is a project derived from IngeTrazo by Marco Sumari Tellez and contributors, whose carefully tuned modelling tools made it the best starting point. It started from IngeTrazo's Python code, removed the architecture, BIM, GIS and rendering features to focus on printable parts, and was rewritten in native Rust. It now develops on its own, under the same GPL-3.0 licence. Xtrude CAD saves its own .xtrude documents. IngeTrazo .igz documents still open, as a new unsaved document, or can be imported into the current one; Xtrude CAD never writes .igz.

How do I build it?

Build instructions are in the README on GitHub.

Start modelling your next part

Get the source and build instructions on GitHub.

Community and contact

Questions asked in public get answers everyone can find. Email is for what has to stay private.

In public, on GitHub

Ask, report and follow the work in the open.