Aircad - Draft, model, and document. Together.

7 min read Original article ↗

Timber pavilion in split views, with a selected curved member, a material view of the woven roof, and a structural assembly sheet

The same timber pavilion project on mobile, showing the woven roof in white wireframe with a curved member selected in blue

No installs
Open a browser and start drawing, always on the latest version.

Pro 2D & 3D drafting
Precision drafting and solid modeling in one app.

Version history
Every change is on record.

Opens your DWGs
With their layouts, blocks, and dimensions.

01/Drafting & 3D

Pro 2D & pro 3D in one app.

2D drafting and 3D solid modeling in one fast, beautiful workspace, from a command line that takes the shortcuts you already know.

Browse every command

Split views of a Library: a cutaway perspective of the 3D model above a copper envelope detail and a front elevation

Familiar drafting tools
Trim, split, extend, stretch, arcs, hatches, blocks, and layers, with command line precision and snaps.

NURBS-based solid modeling
Booleans, fillets, shells, lofts, and sweeps.

Push/pull modeling
Pick a face and push or pull it with precision.

Block libraries built in
Doors, windows, furniture, and plumbing in Imperial and Metric, plus your team’s own blocks, shared in one place.

02/AI

Powerful AI on your terms.

Ask a question or describe an edit in plain words, and the agent works right in your drawing.

How the agent works

Does this stair meet code?

Checking the stair against the IRCFloor to floor is 9′-4″ (112″) over 14 risers: 8″ each, over the 7¾″ limit. Treads are 11″ (10″ minimum). 112 ÷ 7.75 = 14.45, so 15 risers at 7.47″. With the top landing fixed, the new tread goes at the bottom, so check the bottom landing (36″ minimum) and headroom (6′-8″ minimum).

Read the file overview

Read the fileOpen in Scripts

No. Its 14 risers are 8″ each (9′-4″ floor to floor), and the IRC allows 7¾″. The 11″ treads pass. 15 risers at 7.47″ would pass. Keeping the top landing where it is, the run grows one tread at the bottom: the bottom landing stays 3′-4″ deep and headroom is 6′-11″. Want me to make that change?

Yes, fix it.

Draft: Creates 1 line on layer Stairs. Reshapes 3 lines. Edits 1 dimension.Open in Scripts

I added the 15th riser, lengthened the guard, handrail, and arrow, and updated the run’s dimension to 12′-10″.

Apply this change?Apply EnterDiscard Esc

Or say what to changeAuto

Asked whether a stair meets code, the agent on the command line finds its risers are over the IRC's limit, works out that 15 risers fix it, and, when told to fix it, drafts the change on the plan underneath, waiting for Apply or Discard.

Your choice of modelAutoClaudeGPTGeminiDeepSeekGLMand more

Help with the whole job
It drafts, models, and writes commands, and renders your model as an image or right in a viewport.

Nothing changes without your OK
Every change arrives as a draft, highlighted in the drawing, for you to apply or discard.

Right where you work
Ask from the command line or the Agents panel, with your choice of model. Threads are saved with the file, private to you.

Entirely optional
Everything in Aircad works without it. Use it as much or as little as you like.

03/Collaboration

Always up to date. Every change on record.

One source of truth for every drawing. No emailed copies, no files checked out, no “final_v3.” Every edit is kept with who made it and when.

Sharing and comments in the docs

Multiplayer editing

Share a link and everyone works in the same file, so there's never a stale copy, and you can see who's working where.

Always the latest revision
Everyone edits the same file at once, and each change shows up for everyone as it's made.

Comments on the drawing
Feedback stays pinned to the spot it's about, not lost in email, so the context is kept as the drawing changes.

Review is built in
Comments, redlines, and marked-up PDFs are part of Aircad. No separate review subscription required.

Control who can edit
Share with a link, and decide who can edit and who can only view.

Mounting Plate

Two teammates in the same part drawing, each with a named pointer, and a comment thread pinned to the bore asking to enlarge it.

A clear record of every change.

Every file keeps unlimited version history, so nothing is lost and any change can be traced back.

A complete audit trail
Every edit is kept with who made it and when, in an activity feed for the file.

Compare any two versions
See what was added, changed, and deleted, tinted right in the drawing.

Fork and edit
Experiment on a fork from any point in the history. The original stays as it was.

Restore earlier work
Bring back an earlier version whenever you need it.

Mounting Plate All changes saved

Version history

  1. Alex · Yesterday, 16:42

  2. Bolt pattern

    You · Today, 10:18

  3. Alex · Today, 11:06

  4. Current version

    You · Today, 11:32

Rev A Rev B

5 added2 changed1 removed

Your current drawing stays intact while you compare. Restore earlier work

A mounting plate compared across two versions in its history: a new bolt pattern tinted as added, a larger bore tinted as changed with its old size ghosted, and a deleted slot ghosted as removed.

04/Documentation

Document everything, beautifully.

A drawing set is only as good as its annotation. Dimensions, GD&T, leaders, text, and tables, on layouts with viewports at any scale that print exactly as they look.

Annotation in the docs

A faucet product sheet with orthographic views, a detail, and a parts list beside the 3D model on a marble counter

Every dimension type
Linear, angular, radius, diameter, arc length, ordinate, baseline, and continue. Each follows the geometry it measures, so it stays right as the design changes.

GD&T and leaders
Feature control frames on their own or on a leader, and leaders for notes and callouts.

Text, tables, and title blocks
Styled text, tables for schedules and parts lists, and title blocks with attributes. Styles keep a whole set consistent.

Beautiful view styles
Sections with hatching, hidden line from the model, line weights, shadows, and physically based materials, with a print preview that matches the PDF.

05/Import & export

Bring your files. Take them anywhere.

Open DWG and DXF with their layouts, blocks, and dimensions, and bring in Rhino, STEP, glTF, and SVG. Send drawings back as DWG, DXF, or PDF, and models as STL or OBJ.

What each format brings in

.dwgAutoCAD drawingImport · Export

.dxfDrawing exchangeImport · Export

.pdfDrawing setExport

.3dmRhino modelImport

.stepSolid exchangeImport

.gltfScene + materialsImport

.svgVector artworkImport

.stl · .objMeshesImport · Export

Performance

Serious CAD performance.

250,000+ entities in one file. Keep the whole model in one place instead of splitting it across files to keep your CAD responsive.

A Sears Tower study in Aircad, with material and wireframe views side by side.

108 floors. 38,510 editable solids.

Big models stay smooth
Pan, zoom, and orbit stay fluid with thousands of solids on screen, and repeated parts and blocks barely add to the load.

Edits stay quick
Changing one part updates just that part, so a big file feels as quick as a small one.

Heavy work runs in the background
Booleans, edge fillets, lofts, sweeps, and Make2D run off to the side. The drawing stays live, and Esc stops them.

Views switch without reloading
Split the screen, change view styles, or turn on print preview, and the model doesn’t load again.

06/Scripting

Make the command you wish you had.

Write commands in JavaScript on the same API our built-in commands use: inputs with snaps, live previews, options, and one undo step. Keep them in the file or share them with your team. Or describe the command and let the agent write it.

Read the script API

Make a Torus command: pick the center, drag the ring's radius with a preview, then set the tube radius.

import { BRep, Curve, Plane } from "aircad";

export const manifest = {
  name: "Torus",
  kind: "command",
  capabilities: ["document:read", "document:write"],
  inputs: {
    center: { type: "point", prompt: "Pick the center" },
    radius: { type: "length", prompt: "Major radius" },
    tube: { type: "length", prompt: "Tube radius" },
  },
  api: 1,
};

export default async function main(cad) {
  const center = await cad.input.point("center");
  // Draw the ring while the pointer moves.
  const ring = cad.display.show();
  const radius = await cad.input.length("radius", {
    from: center,
    onChange: (r) => ring.set(Curve.circle(Plane.at(center), r)),
  });
  const tube = await cad.input.length("tube");
  return cad.doc.add(BRep.torus(Plane.at(center), radius, tube));
}

Saved Torus as a draft in the Scripts panel: asks for center, radius, tube

Deep scripting API
No matter how strange the problem, our scripting API has you covered.

Live previews
Draw as the pointer moves; commit on the click.

Shared through libraries
Publish commands to your team and keep everyone current.

Safe by design
Scripts run in a sandbox with no network access.

Start drawing together.

Bring your next idea to life, together in one team workspace.