Cloud-Native · AI-Native · Text-first CAD
Define reusable components in FCL, share them via the cloud, and assemble them anywhere — desktop or web — with a language designed for engineers, automation, and AI.
child rulesCreate a component anywhere — it’s instantly available everywhere.

// @@params bay_count=4, span=6000mm, beamProfile="IPE200"
// @@params basePlane:plane=#XY_Plane
child BrktRow key=BracketDef
translation=($index * @@spanPitch($span, $bay_count),
$plate_thk,
0)
rotation=@@rotZDeg(90)
qty=$bay_count
child BeamRow key=$beamProfile
translation=(0, $plate_thk + $br_ht, 0)
span=$span
FormulaCAD is a cloud CAD platform built around FCL – the FormulaCAD Language.
FCL is a compact, declarative DSL for describing:
child rules, transforms, patternsModels become deterministic, reviewable, reusable — and AI can generate them safely.
FCL files are plain text. Store them in your own Git repositories.
Branch, review, diff, and merge design intent like any engineering artifact.
FormulaCAD also provides built-in FCL diffing for fast model reviews.
@@params declare inputs@@functions drive geometrychild rulesOne definition can drive many assemblies.
FormulaCAD treats every part or assembly as a reusable component:
child rulesLibraries become shared engineering assets.
// Reusable bracket component
part BracketDef
// ... feature rules ...
endpart
// Assembly calling components
asm BeamRowAsm
child Bracket key=BracketDef
translation=($edge + $index * $bay_pitch,
$plate_thk,
0)
qty=$bay_count
child Beam key=$beamProfile
translation=(0, $plate_thk + $br_ht, 0)
span=$span
endasm
FormulaCAD is cloud-first:
All backed by a central cloud component catalog.
Publish a component once and use it:
FCL becomes the portable “recipe” for geometry.
@@functions and expressions.FCL encodes engineering logic through typed functions:
Examples:
@@rotZDeg(angle)@@spanPitch(span, bay_count)@@defaultSpan(bay_count)// @@params bay_count=4, span=6000mm
asm FrameAsm
let design_span = @@defaultSpan($bay_count)
child Column key=ColumnDef
translation=($index * @@spanPitch(design_span, $bay_count), 0, 0)
qty=$bay_count + 1
child Beam key=$beamProfile
translation=(0, $col_ht, 0)
span=design_span
endasm




| Tool | What it is | How FormulaCAD differs |
|---|---|---|
| FreeCAD | GUI parametric CAD | Text-native, cloud-backed modeling |
| OpenSCAD | CSG scripting CAD | Supports assemblies, 2D, drawings, cloud reuse |
| CadQuery | Python DSL for CAD | Dedicated DSL with typed catalogs |
FormulaCAD is not a macro layer — it is a CAD platform defined by text from the beginning.