The vcad kernel is a purpose-built BRep (boundary representation) modeling kernel written in Rust — roughly 285K lines across 70+ focused crates, each owning one capability. This page catalogs every feature area, with examples authored in loon and rendered by the kernel's own pipeline: loon source → IR → BRep evaluation → tessellation → vcad-render. Every image below is the kernel's actual output.
Modeling Core
Analytic Primitives
vcad-kernel-primitives constructs boxes, cylinders, spheres, and cones as exact BRep solids — a cylinder is a real CylinderSurface with analytic caps, not a polygon approximation. Downstream operations (booleans, fillets, ray tracing) work against the true surface.
[let box [translate -70 0 0 [cube 40 40 30]]]
[let cyl [cylinder 20 40]]
[let sph [translate 70 0 20 [sphere 20]]]
[let cn [translate 120 -20 0 [cone 20 8 40]]]
[root [union box [union cyl [union sph cn]]] "aluminum"]

Half-Edge Topology
vcad-kernel-topo stores vertices, edges, loops, faces, shells, and solids in slotmap arenas with O(1) stable handles. Euler operators and non-allocating adjacency iterators make topology surgery — face splitting, edge merging, shell repair — fast and safe. See BRep Kernel for the full data-structure walkthrough.
Surfaces and Curves
vcad-kernel-geom implements the Surface trait for planes, cylinders, cones, spheres, tori, and bilinear patches, plus 3D/2D curve types for edges and trim loops. vcad-kernel-nurbs extends this with full B-spline curves and surfaces (knot vectors, weights, control grids) for freeform geometry.
Exact Predicates
vcad-kernel-math provides linear algebra, transforms, and Shewchuk's adaptive-precision predicates (orient2d, orient3d, incircle, insphere) via the robust crate. Geometric decisions — is this point above that plane? — are exact, not floating-point guesses, which is what keeps booleans from producing holes and inverted faces on near-degenerate input.
Persistent Topological Naming
vcad-kernel-naming gives faces stable names derived from their generating operations (n3:top, n1:side, with deterministic split ordinals through booleans) instead of ephemeral arena keys, and names edges by their adjacent-face pair. Downstream references — EdgeQuery::Named on an edge blend — re-resolve after an upstream parameter change, so a fillet stays on the intended edge when the parent box is resized. Resolution is fail-closed: an ambiguous or lost reference is an explicit error (with a geometric-hint fallback matcher), never a silent rebind to the nearest edge.
Operations
Boolean Operations
vcad-kernel-booleans implements union, difference, and intersection through a four-stage pipeline: AABB broadphase filtering, analytic surface-surface intersection (with a sampled fallback), exact-predicate face classification via ray casting and winding numbers, and a sewing stage that trims, splits, and merges faces with topology repair. The part below is one union and two differences:
[let plate [cube 80 50 12]]
[let boss [translate 40 25 12 [cylinder 14 10]]]
[let bore [translate 40 25 -1 [cylinder 8 25]]]
[let corner [translate 68 -4 -1 [cube 16 16 14]]]
[root [difference corner [difference bore [union boss plate]]] "steel"]

Fillets and Chamfers
vcad-kernel-fillet rounds or bevels edges directly on the BRep — inserting true cylindrical and spherical blend faces rather than faceting the mesh. Left: [fillet 6 ...]; right: [chamfer 6 ...].
[let a [fillet 6 [cube 40 40 40]]]
[let b [translate 60 0 0 [chamfer 6 [cube 40 40 40]]]]
[root [union a b] "aluminum"]

Shell and Patterns
vcad-kernel-shell hollows a solid by offsetting its surfaces inward — each Surface knows how to offset itself analytically (a cylinder shrinks its radius, a plane translates). It also provides linear and circular patterns. Below, a box shelled to a 3 mm wall, with a cutaway to show the interior:
[let hollow [shell 3 [cube 60 40 30]]]
[let cutaway [translate 30 20 10 [cube 40 30 30]]]
[root [difference cutaway hollow] "abs"]

A circular pattern turns one hole into a bolt circle in a single operation:
[let disc [cylinder 40 10]]
[let hub [translate 0 0 10 [cylinder 12 15]]]
[let hole [translate 28 0 -1 [cylinder 4 12]]]
[let holes [circular-pattern 0 0 0 0 0 1 6 360 hole]]
[root [difference holes [union hub disc]] "steel"]

Sketches and Constraints
vcad-kernel-sketch models 2D profiles (lines, arcs) on arbitrary planes, and vcad-kernel-constraints solves geometric constraints — coincident, horizontal/vertical, parallel, perpendicular, tangent, distance, length, radius, angle, equal-length, fixed — with a Levenberg-Marquardt solver using adaptive damping. Sketches feed every profile-based operation below.
Extrude, Revolve, Sweep, Loft
vcad-kernel-sweep turns closed sketch profiles into solids. Revolve spins a profile around an axis:
[let profile [sketch 0 0 0 1 0 0 0 0 1 #[
[line 8 0 20 0] [line 20 0 20 6] [line 20 6 12 10]
[line 12 10 12 30] [line 12 30 18 36] [line 18 36 18 42]
[line 18 42 8 42] [line 8 42 8 0]
]]]
[root [revolve 0 0 0 0 0 1 360 profile] "brass"]

Helical sweep carries a circular profile along a helix — a compression spring in four lines:
[let profile [sketch 0 0 0 1 0 0 0 0 1 #[
[arc 3 0 -3 0 0 0 true]
[arc -3 0 3 0 0 0 true]
]]]
[root [sweep-helix 15 12 60 5 profile] "steel"]

Loft interpolates a solid through a sequence of cross-sections:
[let base [sketch 0 0 0 1 0 0 0 1 0 #[ ... 60x60 square ... ]]]
[let mid [sketch 0 0 30 1 0 0 0 1 0 #[ ... 24x44 rectangle ... ]]]
[let top [sketch 0 0 60 1 0 0 0 1 0 #[ ... 36x20 rectangle ... ]]]
[root [loft #[base mid top]] "aluminum"]

Text and Sheet Metal
vcad-kernel-text converts text to sketch geometry for embossing and engraving. vcad-kernel-sheet models sheet-metal parts — flanges, bends — with lossless unfolding to a flat pattern.
Tessellation and Rendering
Tessellation
vcad-kernel-tessellate converts BReps to watertight triangle meshes with curvature-adaptive sampling and trim-loop-aware triangulation. This feeds the viewport, STL/GLB export, physics collision shapes, and the images on this page.
Direct BRep Ray Tracing
vcad-kernel-raytrace renders BReps pixel-perfectly without tessellation: analytic ray intersection against every surface type, SAH-built BVH acceleration, and trimmed-surface handling, running as a WebGPU compute pipeline in the app's ray-traced view mode. The same engine runs on the CPU for headless output: vcad-render part.vcad --raytrace --png out.png produces an exact-silhouette raster in any of the standard views.
GPU Compute
vcad-kernel-gpu offloads mesh work — normal computation, decimation — to wgpu compute shaders.
Interoperability
- STEP —
vcad-kernel-stepreads and writes STEP AP214, the lingua franca of mechanical CAD. Drag a.stepfile into the app and it becomes an editable BRep. - URDF —
vcad-kernel-urdfimports robot descriptions (links, joints, inertials) as vcad assemblies ready for simulation. - Drafting —
vcad-kernel-draftinggenerates shop-ready 2D drawings: orthographic projections with hidden-line removal, full and offset (stepped) section views with hatching and cutting-plane callouts, detail views with scale bubbles, dimensions, GD&T annotations, title block / revision table / BOM entities, and deterministic PDF + DXF sheet export with ANSI/ISO line weights.
Simulation and Analysis
Physics
vcad-kernel-physics converts BRep assemblies into articulated rigid-body simulations (phyz): revolute, prismatic, cylindrical, ball, and fixed joints, with a gym-style reset() / step(action) / observe() interface for reinforcement learning — actions as torques, position targets, or velocity targets.
Differentiable Geometry
vcad-kernel-diff is a differentiable seam through the kernel: it computes exact parameter sensitivities (dx/dθ) of tessellations, mass-property gradients, differentiable fillet radii, and reverse-mode adjoints — so you can ask "how does mass change per millimeter of this parameter?" and optimize designs with L-BFGS, including gradients through physics rollouts with contact.
Topology Optimization
vcad-kernel-topopt runs SIMP topology optimization — voxel FEA finding the stiffest material layout for given loads and supports, extracted back to a mesh via surface nets.
Molecular Simulation
vcad-kernel-atoms extends the kernel below the continuum: atomic and molecular design with molecular dynamics, energy minimization, ML potentials, and inverse material design.
Photonics Inverse Design
vcad-kernel-photonics is a 2D FDTD electromagnetics solver (Yee grid, TM/TE, CPML absorbing boundaries, slab-eigenmode sources, spectral flux monitors) with a discrete adjoint: exact gradients of transmission with respect to every design cell's permittivity at the cost of one extra simulation, validated against finite differences to 5×10⁻⁷. Density-based topology optimization (cone filter, β-scheduled projection) inverse-designs devices end to end — the flagship example produces a 1×2 power splitter hitting 3.06/3.01 dB per arm against the 3.01 dB ideal, exports the exact simulated pixel geometry as fab-ready GDS via vcad-gdsii, and emits vcad.photonics-claims/1 predictions with full solver provenance plus a Holds/Violated/Unmeasured compare() for when the chip comes back. The validation ladder tests against the discretization's own closed forms: numerical dispersion to 5×10⁻⁸, the exact discrete Fresnel coefficient to 10⁻⁴, an energy invariant conserved to 10⁻¹¹, and a measured −95.6 dB CPML floor. Out of scope, stated on every output: it is 2D with one polarization per run (exact for the 2D problem, qualitative for real chips — no effective-index reduction of 3D stacks is performed for you), materials are linear, lossless, and non-dispersive (one ε per material, right at the design wavelength), and there is no fab-variation model — the tape-out pack expects absolute insertion loss to violate on a 3D chip and says so up front.
Electromagnetic Fields
vcad-kernel-em replaces formula-grade electromagnetics — Wheeler coil formulas, reluctance networks, first-order motor constants — with solved fields. Three linear-statics formulations share one symmetric finite-volume core (every problem is ∇·(c∇u) = −s, relaxed by SOR with scale-invariant stopping): axisymmetric magnetostatics on ψ = r·Aθ, planar magnetostatics on Az with magnets as bound-current sheets, and electrostatics on φ, with nonlinear B–H (damped Picard) and AC phasor eddy currents layered on top. Every output — inductance, capacitance, stored energy, force, torque — is computed by two independent routes (energy vs. flux linkage, Maxwell stress vs. J×B) and the gap between them ships on the claim as cross_route_residual. A discrete adjoint prices coil currents, magnet strength, and per-region μr in one extra solve on the same operator (FD-validated: current gradients to 10⁻⁵, μ gradients to ~10⁻³; gradients through saturable materials are refused rather than mispriced). The ladder runs from exact anchors (infinite solenoid converging O(h²) to 6×10⁻⁵, coax capacitance within 0.2%) through published results (finite-solenoid inductance within 0.15% of Wheeler's 1928 formula, coaxial-loop mutual inductance within 3% of Smythe, force cross-checks to 0.08%) to a Jackson magnetic-shielding problem whose staircase error is stated at every resolution — 32.7% at h = 1 mm down to 1.7% at h = 0.25 mm, and at h = 2 mm the answer is garbage, which is part of the result. Emits vcad.em-claims/1 predictions with a fail-closed Holds/Violated/Unmeasured compare(); the measurement pack binds a bench motor build to those claims (predicted 4.64 mN·m at 1.5 A, with a 1.6% cross-route residual). Out of scope: 3D, hysteresis, saturation combined with AC (harmonic balance), and FEM-grade curved boundaries — material edges staircase at grid resolution, an O(h) bias the ladder measures rather than hides.
Antenna Analysis
vcad-kernel-antenna predicts input impedance Zin(f), S11, resonance, and far-field gain, directivity, and radiated power for wire antennas — dipoles, monopoles over ground, loops, folded dipoles, Yagis, top-hat verticals — from wire lists or ECAD traces (a flat strip maps to a round wire of radius w/4). The method is the thin-wire mixed-potential EFIE: triangular current bases with Galerkin testing, singularity-extracted quadrature, a delta-gap feed, and a hand-rolled complex dense LU with zero external dependencies. Validation runs from Balanis closed forms (half-wave dipole resonance at ℓ/λ = 0.479 with R = 71.9 Ω against the ideal 73 + j42.5, broadside directivity 2.138 dBi vs. the published 2.15) through NEC-2 reference cases (within 3.7–4% of NEC's impedances) to physics invariants (reciprocity to 10⁻⁹, radiated-over-input power within 3%). Geometry outside the thin-wire regime fails closed — segment-to-radius and electrical-size gates are hard errors, never silent degradation, and NEC's own thick-loop example is refused rather than answered badly. An adjoint identity prices dZin/dp for spec parameters in one solve (FD-validated to 10⁻⁴; a Newton step retunes a 10%-detuned dipole to resonance in ≤5 steps). Emits vcad.antenna-claims/1 predictions with fail-closed Holds/Violated/Unmeasured compare(), and the measurement pack closes the loop for about $100: sweep a 915 MHz PCB monopole with a NanoVNA, save the Touchstone .s1p, and grade the claims. Honesty: no dielectric substrates yet — FR-4 pulls resonance down roughly 30–40% for microstrip-like traces, so until the substrate model lands, PCB predictions are trends, not numbers; conductors are PEC (radiation efficiency ≡ 1); no patches, apertures, or full-wave 3D.
Charged-Particle Optics
vcad-kernel-particle simulates charged-particle optics in axisymmetric electrode devices — fusors, magnetically shielded-grid IEC machines, ion sources — as vacuum-field single-particle physics: electrode geometry → fields → trajectories → figures of merit. Fields come from an axisymmetric Poisson solve (SOR) plus exact ring-coil B via complete elliptic integrals; a Boris pusher with adaptive substepping traces ions to wire, wall, or survival; Bosch–Hale D-D cross sections (both branches) weight each trajectory into neutron yield, with an optional charge-exchange survival model. A discrete adjoint back-propagates ensemble yield through the whole chain — reverse Boris, deposits into the potential grid, one adjoint Poisson solve — pricing every ring potential, the wall potential, and every coil's ampere-turns (FD-validated to 0.1–0.8%). The ladder anchors elliptic integrals to Abramowitz & Stegun at 10⁻¹², Bosch–Hale to published cross-section anchors, and mirror loss cones and axial oscillation periods to analytic estimates — then reproduces the magnetically shielded-grid effect from arXiv:1510.01788 (interception falls, core passes rise) and the rL ∝ √V scaling that lets low-voltage shielding data transfer to fusion voltages. Claims ride the unified receipt's open domain vocabulary: vcad.particle-claims/1 (interception, transparency, D-D neutron rate, Q, distance-to-Lawson) with basis predicted, so a receipt rolls up Provisional, never Pass, until measured — the flagship fusor card reads Q = 4.1×10⁻¹⁰, 9.4 orders of magnitude from breakeven, stated exactly. The MCP tools simulate_charged_particles and optimize_electrodes (multi-start search over electrode specs) put the loop in agents' hands. Honesty: no space charge, no plasma physics — single-species vacuum optics in the regime where geometry dominates; predicted neutron rates are floors; and it does not claim a path to net energy gain.
Neutron Transport
vcad-kernel-neutronics is an analog Monte Carlo neutron-transport solver for benign shielding design: a layered shield (slab stacks or concentric spherical shells) around a 2.45 MeV D-D source goes in; per-region flux, leakage, thermalization observables, and ambient dose equivalent H*(10) come out — every tally a mean with its relative standard error, and a zero-scored tally reports infinite error rather than silence. The physics is five energy groups with exact two-body elastic kinematics (correlated outgoing energy and lab angle), absorption, and downscatter, with per-batch conservation asserted to 10⁻¹²; dose conversion is anchored to ICRP-74. A deterministic adjoint-diffusion companion prices d(dose)/d(layer thickness) in one extra solve — FD-validated against the Monte Carlo itself to ~25%, with its ~1.5× absolute bias vs. MC measured and stated rather than hidden. Validation: uncollided flux against e^(−Σr)/4πr² within 4σ, slab transmission at 3 mean free paths against the exact 0.049787, 1/√N error scaling asserted, and textbook thermal benchmarks quoted with their misses — water diffusion length −25%, Fermi age +23% — inside bands stated exactly that wide. Emits vcad.neutronics-claims/1 (dose rate, attenuation factor, thermal flux; basis predicted) with a fail-closed Holds/Violated/Unmeasured compare() whose bands widen by both measurement and Monte Carlo σ. The honesty section is load-bearing: fission is refused permanently — no fission cross sections, no keff, not at any milestone; the cross-section library is a named design-estimate set good to ±20–30%, not evaluated nuclear data; capture gammas are not transported (budget them separately); and results are free-field — real rooms scatter neutrons back, and that return is unmodeled.
Thermal Analysis
vcad-kernel-thermal solves steady and transient heat conduction on a voxel grid: materials, power sources, and fixed-temperature reservoirs are painted as box and cylinder regions (or supplied per-voxel), domain faces take Dirichlet, convection-film, or adiabatic conditions, and a harmonic-mean finite-volume operator is solved matrix-free with Jacobi-preconditioned conjugate gradients (backward Euler in time). Outputs: the temperature field, Tmax and its location, per-source thermal resistance θ, per-reservoir heat flows — and an energy-balance residual reported on every solve (typically ~10⁻¹¹). Because the conduction operator is self-adjoint, the exact gradient of a smooth-max hot-spot objective with respect to every conductivity, film coefficient, and source power costs one extra CG solve (FD-validated: source powers to 2×10⁻⁹, conductivities to ~10⁻⁶). The ladder is analytic end to end: composite slabs exact to 2.8×10⁻¹⁴ °C at a 200:1 conductivity contrast, Robin films exact from h = 50 to 10⁹, cylinder shells converging under 5%, transient lumped-capacitance and semi-infinite erfc solutions within 0.5% and 1.5%. Emits vcad.thermal-claims/1 (Tmax, θJA, energy balance; basis predicted) with fail-closed Holds/Violated/Unmeasured compare() — and it refuses floating regions, sources painted into empty space, and non-converged solves rather than returning plausible numbers. Honesty: pure conduction — no radiation, no fluid flow; convection enters only as a supplied film coefficient, and that h is the biggest uncertainty in every prediction (natural-convection correlations carry ±20–30%). Its own M1 study measured the "isotropic board" idealization under-reading a chip's θJA by 43% — don't adjective an error you can compute.
Structural FEA
vcad-kernel-fea answers the everyday question — will this bracket break? — on the part's real geometry: the tessellated boundary is filled with a lattice of linear tetrahedra (Kuhn decomposition, face-conforming and watertight by construction), and a constant-strain-tet linear-elastic solve (matrix-free Jacobi-PCG, mm-N-MPa units) returns max von Mises stress and its location, max displacement, compliance, and — given a yield strength — a safety factor. The load-bearing feature is the fail-closed mesh-convergence gate: every analysis solves at two or more refinement levels, the inter-level change of each QoI is reported as its discretization-error estimate, and a study whose QoIs disagree beyond stated tolerances is Unverifiable — no safety factor, no claims, with the reason spelled out (including "your peak stress sits on a singular re-entrant corner; fillet it", which is design feedback, not solver failure). Validation is closed-form: axial bar compliance within 3% of FL/(EA), a cantilever converging monotonically from below onto the Timoshenko deflection, exact 1/E displacement scaling, exact volume recovery on lattice-aligned geometry. Converged studies emit vcad.fea-claims/1 (stress, displacement, safety factor, plus the discretization-error conscience claims; basis predicted — receipts roll up Provisional until the part is load-tested); unconverged ones poison the receipt with a single unverifiable claim so nothing quietly passes. Honesty: small-displacement linear elasticity of one isotropic material — no plasticity, buckling, contact, or dynamic loads; the boundary is staircase-approximated at the lattice pitch (priced by the gate); constant-strain tets smear stress concentrations, so the reported peak is a lower bound that tightens with refinement. Exposed over MCP as analyze_structure; predict_physics remains the fast voxel-hex steering loop.
Tolerance Stackup
vcad-kernel-tolerance prices dimensional tolerance stacks: will this assembly fit, and at what yield? A stack of contributors (nominal, signed coefficient, drawing limits, deviation distribution) plus a requirement produces the worst-case interval, exact RSS moments and yield, a seeded Monte Carlo fit probability (xoshiro256++ — bit-reproducible, no rand dependency), Cp/Cpk, and ranked sensitivities. Sensitivities are closed-form, not finite differences: variance shares that sum to one and per-contributor yield derivatives (validated against FD to 10⁻⁴). Beyond linear chains it gauges GD&T bolt-circle fits directly — reporting the virtual-condition worst case alongside the true Monte Carlo fit rate (a stack the VC check fails outright can still fit 87% of the time, and both numbers are stated) — allocates tolerances at minimum cost against a yield target, and binds measured coupon scatter back onto the assumed distributions. Validation is exact where exactness exists: hand-computed textbook chains asserted to 10⁻¹², yield against the normal table to 10⁻⁶, RSS ≡ Monte Carlo within four standard errors, Irwin–Hall closed forms bounding the CLT error, 1/√N convergence asserted. Emits vcad.tolerance-claims/1 (fit probability, RSS yield, Cp/Cpk, worst-case margin; basis predicted) with fail-closed Holds/Violated/Unmeasured compare(). Honesty: the ±tol↔σ convention buries more products than any solver bug, so the default (±tol = 3σ) ships as recorded provenance, never silently; contributors are assumed independent — two dimensions cut in one fixture make RSS and Monte Carlo both wrong about their sum; linearized radial projections are measurably optimistic (~1.9 points at c/σ = 2.7); and there is no full 3D tolerance-zone simulation or datum-reference-frame gauging (the 3DCS/CETOL feature set).
Air Acoustics
vcad-kernel-acoustics is the air-side complement to structural acoustics (the simulate_strike bar solver models how a solid vibrates; this models how the air resonates and radiates). It solves the driven Helmholtz field (∇²+k²)p = −jωρ·s for cavities, ports and boxes on an axisymmetric (r, z) grid with a vertex-centred finite-volume discretisation: conservative, symmetric — so field reciprocity (source ↔ receiver) holds to round-off (measured 4.5×10⁻¹⁶) — and exact on the axis via r-weighted control volumes. The operator is indefinite (singular at every resonance), so it is solved directly by block-Thomas, never relaxation. Resonances are read the way a bench does it: sweep a driven source, peak-pick |p| — no eigen-decomposition. The lumped spine (duct acoustic mass, cavity compliance, Helmholtz/bass-reflex tuning f_b = (c/2π)√(S/(V·L_eff)) with Beranek/Kinsler end corrections) is both a feature and the field solver's oracle, and a baffled-piston radiation model (Rayleigh integral + on-axis closed form + J₁ directivity) covers the open-domain side analytically. The ladder is closed-form: rigid closed-cylinder axial modes fₙ = n·c/2L reproduced to 0.04–0.1%, second-order grid convergence to a named 0.005% floor (19× error drop over 4× refinement), the numeric Rayleigh integrator recovering the analytic on-axis pressure and the piston directivity null at ka·sinθ = 3.8317. The flagship examples/ported_box.rs prices a bass-reflex enclosure's port tuning, confirms it against the field sweep, then lets the optimizer size the port length for a target tuning (120 → 339 mm, retuning 72 → 45 Hz against the field solve itself). Emits vcad.acoustics-claims/1 (tuning, mode frequencies, response at listed points; basis predicted — receipts roll up Provisional, never Pass), with a compare() that names a calibrated measurement microphone + swept sine as the closing instruments — the same loop the glockenspiel closed to −5 cents. Honesty: linear, lossless acoustics — no thermoviscous or radiation damping, so resonator/port Q reads optimistic and every claim says so; the pressure-release mouth omits the exterior radiation mass, so field tuning reads ~15% high of the fully end-corrected lumped value (a radiation-impedance mouth is M1); structural↔air coupling (a vibrating cone/bar radiating into a modelled room) is M2 — M0 states the surface-velocity-in, pressure-out seam and keeps the two solvers independent.
Manufacturing
- CAM —
vcad-kernel-camgenerates 2.5D machining toolpaths with a G-code post-processor. - Stock simulation —
vcad-kernel-stocksimverifies toolpaths against an octree-SDF stock model, acting as a fail-closed oracle for CAM output. - DFM —
vcad-kernel-dfmchecks designs against manufacturability rule packs (minimum wall thickness, drill standards, etc.) and suggests fixes. - Cost —
vcad-kernel-costestimates manufacturing cost with a shared model used by quoting tools.
One Kernel, Every Surface
Everything above compiles to a single unified API in vcad-kernel, which is consumed three ways: natively by the CLI and MCP server, via vcad-kernel-wasm in the browser (the same kernel runs client-side at vcad.io), and through the IR format that makes every model a reproducible, parametric program.
Every figure on this page was generated headlessly: loon source evaluated by vcad-loon, rendered with cargo run -p vcad-render -- part.vcad --jpeg out.jpg. No screenshots, no external renderer — the kernel drew its own documentation.