FormulaCAD Language
FCL is a text-first, declarative language for describing parts, assemblies, and drawings.
Instead of hiding design intent in dialogs and files, FCL expresses the model directly in text — and FormulaCAD builds real CAD geometry from it.
FCL makes CAD deterministic, reviewable, reusable, and AI-authorable.
child name=Column key="EN.IPE200"
span=3000
child name=Beam key="EN.IPE200"
span=6000
.translate = ((0, 0, 3000))
FormulaCAD is cloud-native parametric CAD.
The unit of work is not a file — it is a component:
You do not manage local CAD files. You reference components by key, and the cloud resolves the model.
FCL is the language inside each component.
Core model
Most CAD systems revolve around files. You open a file, edit it, save it, and pass it around.
FormulaCAD revolves around components.
A component is a cloud object with:
You don’t import or copy geometry. You reference components by key, and the platform resolves and composes them at build time.
Define locally. Reference globally.
EN.IPE200 directlyThis is closer to how modern cloud tools work: you reference objects, not files.
params plate_len=100, plate_wid=50, plate_thk=10
sketch name=base
rect p1=(0,0) p2=($plate_len,$plate_wid) mode=2p
endsketch
extrude profile=#base distance=$plate_thk mode=add
Modeling approach
If you have used SolidWorks, Fusion, Creo, or Onshape, the mental model will feel familiar.
A part still has sketches, features, parameters, and references.
The difference is that the feature tree is written directly in text. Every feature references earlier geometry explicitly, and every dependency is visible.
Composition
Assemblies in FCL are built with child rules.
A child references another component by key, passes inputs to it, and places the resulting geometry using ordered placement operations.
These operations — such as .translate, .rx, .ry, .rz — are applied in sequence, making placement explicit and predictable.
This creates a composition graph, not a file hierarchy.
One definition can drive many instances. Updates flow through the assemblies that reference it.
params bay_count=4, bay_pitch=1500
params beamProfile="EN.IPE200"
child name=Beam key=$beamProfile
span=6000
child name=Bracket key="bracket_v1" qty=$bay_count
.translate = ((($index - 1) * $bay_pitch, 0, 0))
The same FCL produces the same geometry.
Inputs, references, and operations are explicit.
FCL is readable text.
Dimensions, features, and references can be inspected directly.
FCL is structured enough for AI to generate, but constrained enough to validate.
Language boundaries
FCL avoids general-purpose programming constructs such as:
for or whileif/else blocksYou describe geometry — you do not execute procedures.
FCL still supports the patterns CAD models need:
qty and $index@Choose(...) or @If(...)This is a deliberate trade. It keeps models predictable, easier to review, safer to validate, and better suited for AI generation.
Parametric logic
FCL encodes engineering logic through parameters, expressions, and typed functions.
Functions are:
Examples:
@SinDeg(deg)@CosDeg(deg)@Max(value1,value2)@If(condition,value_if_true,value_if_false)@CurvePlane(CurveName)params bay_count=4, span=6000
params pitch=@($span / ($bay_count - 1))
child name=Column key="EN.IPE200" qty=$bay_count
span=3000
.translate = ((($index - 1) * $pitch, 0, 0))
child name=Beam key="EN.IPE200"
span=$span
.translate = ((0, 0, 3000))
A minimal example
A typical FCL component mixes local geometry with references to standard components.
You define what is unique, and reference what already exists in the library.
That’s the core pattern.
Define locally. Reference globally.
params plate_len=600, plate_wid=400, plate_thk=20
part name=BasePlate
sketch name=base
rect p1=(0,0) p2=($plate_len,$plate_wid) mode=2p
endsketch
extrude profile=#base distance=$plate_thk mode=add
endpart
child name=Column key="EN.IPE200"
span=3000
Text-based CAD landscape
Text-first CAD is a growing and proven category. Tools like OpenSCAD, CadQuery, and other scripting-based systems show that defining geometry in code is a powerful idea.
FCL builds on the same foundation — but is designed for practical, everyday CAD use.
Instead of script-driven, file-based workflows, FCL is declarative, component-oriented, and cloud-native:
The result is a system that keeps the strengths of text-based CAD — clarity, versionability, automation — while aligning with how mechanical CAD is actually used in practice.
Open reference materials
The FCL specification, rule catalog, function library, examples, and standard-library source are published on GitHub.
Use the corpus to:
The language implementation and FormulaCAD platform remain proprietary. The grounding materials and library source are open reference materials.
The cloud database is the runtime.
You author components in FormulaCAD. GitHub is where the public specification, examples, and library source can be inspected, used for AI grounding, and improved through review.