● 0 balls
⚡ 0.00 avg vel
⟷ 0.00 avg dist
⊕ 0 overlaps
Ready
Faceted Forms
Lexicon & Nomenclature
01 — Primitives
Every form begins as a circle. Three geometric modifications produce distinct primitive types.
02 — Connections
When two same-color circles come within gap range (0.65× minR), a connection is computed. Two types exist, chosen per pair at generation time (~70% rod bar probability).
Fillet Neck Anatomy
Four arcs: two outer arcs (back of each circle) and two concave fillet arcs (the bridge). The fillet circle radius determines neck thickness: Rf = max(Ra×0.55, gap×0.5 + (Ra+Rb)×0.22).
Rod Bar Anatomy
Common external tangent lines touch both circles simultaneously. φ = lineAng ± acos((Rb−Ra)/dist). Contact point = center − R×(cosφ, sinφ). Min bar width enforced at 55% of smaller radius.
03 — Fill Modes
04 — Physics
| Term | Definition |
|---|---|
| Attract | Force pulling each shape toward canvas center. Controls composition tightness. |
| Repel | Inter-circle push force within 2× touching distance. Velocity-level separation. |
| Dampen | Velocity multiplier per frame (0.7–0.98). Lower = more friction. |
| Same-color attract | Additional pull between circles sharing a color. Creates clusters that form blobs and rods. |
| Positional correction | 6 iterations per frame of direct position pushing. Resolves all circle-circle overlap. Mass-weighted. |
| KE | Kinetic energy = Σ(v²×mass). Bake stops when KE < 0.12. |
| Bake | Run physics until rest. Auto-triggers on Generate. Same-color shapes cluster and form connections. |
05 — Output Formats
| Format | Description |
|---|---|
| Solid SVG | Flat-fill vector. Per-shape <clipPath> contains fills. Washer holes as <mask> knockouts. Rod bars as polygon fills. |
| Plotter SVG | Stroke-only for AxiDraw. One Inkscape layer per color. Arc segments clipped by occlusion testing. Rod bars as two tangent stroke lines. |
| PNG Proof | 2× raster with seed/date metadata strip. |
| Ray SVG | Black background. Shape silhouettes punched as voids. Spiral fills radiate outward from each shape center. |
06 — Shape Parameters
| Param | Type | Description |
|---|---|---|
| R | px | Circle radius. |
| cx, cy | px | Circle center. |
| color | hex | From the Grabie 36-pack marker palette (72 hues). |
| colorIdx | 0|1|2 | Which of the 3 active palette slots this shape belongs to. |
| hasWasher | bool | Punched hole. ~25% of shapes. Shapes with washers skip facet chord cuts. |
| washerR | px | Washer hole radius. Always < R. |
| facetDepth | 0.28–0.60 | Half-angle of chord cut. Deeper = flatter facet. |
| hasFill | bool | Gets spiral fill in plotter/SVG output. |
| density | 0.5–5.0 | Spiral fill spacing. Higher = denser. |
| mass | 0.5–1.8 | Physics mass. Heavier shapes move less during Bake. |
| useBar | bool | Rod bar vs fillet neck. Seeded ~70%. Clusters max 2 bars. |
| _smoothET | object | Lerped tangent contact positions for smooth rod bar animation (factor 0.18/frame). |
| _merged | bool | True if part of a blob. Skips solo rendering. |