LogoForm
Studio worktable viewed from above at shallow angle — 3D-printed physical models beside a laptop running a live parametric canvas, a hand mid-gesture holding a mechanical pencil over a plotted Voronoi diagram, natural light washing everything soft

FORM

We write the tools that draw the buildings


Built, installed, occupied.

Realized parametric facade of a tower building with solar-responsive aluminium fins casting geometric shadows

Solstice Tower Façade

Solar-responsive aluminium fin system, 47 unique panel types

Solstice Tower Façade
Interior of a cultural pavilion with tessellated timber ceiling structure, visitors below in warm light

Lattice Pavilion

CNC-milled timber, 2,400 unique nodes, Museum of Applied Arts

Lattice Pavilion
Exterior view of a competition tower with gradient perforation pattern responding to program density

Gradient Perforation Tower

Program-density driven perforation, shortlisted CTBUH 2024

Gradient Perforation Tower
Close-up photograph of an installed ceramic cladding system with interlocking hexagonal units in off-white glaze

Ceramic Hex Cladding

Slip-cast ceramic, 8 tile typologies from one mold

Ceramic Hex Cladding
Occupied urban plaza with a parametric shade structure made of folded steel plates in varying orientations

Folded Steel Plaza Canopy

Wind-load optimised, 320 unique folded plates, fabricated by Vogt Steel

Folded Steel Plaza Canopy
Interior photograph of a residential apartment building with a circulation staircase generated from Voronoi topology

Voronoi Circulation Core

Topologically optimised stair, cast-in-place concrete

Voronoi Circulation Core

The drawings behind the drawings.

Algorithm flowchart hand-drawn on trace paper showing parametric facade generation logic with decision nodes

Solstice — Generation Logic

Algorithm Flowchart

Grasshopper canvas screenshot showing parametric slider study for panel rotation angles across a facade

Rotation Angle Study — 48 iterations

Grasshopper Slider Study

Material test samples for ceramic slip-casting showing glaze variation and surface texture tests on a light surface

Ceramic Hex — Glaze Tests

Material Test

Plot drawing on drafting paper showing Voronoi diagram with varied pen weights indicating structural hierarchy

Voronoi Hierarchy — Pen Weights

Plot Drawing — Pen Weight Study

Physical scale model of a folded steel canopy structure, 3D printed, showing panel articulation and connection details

Folded Canopy — Connection Study

3D-Printed Study Model

CNC toolpath visualization on screen showing milling strategy for timber lattice node with color-coded passes

Lattice Node — 5-Axis Toolpath

CNC Toolpath Visualization

Parametric circulation diagram showing nested floorplan iterations with color gradient indicating density

Floorplan Nesting — Iteration 12

Circulation Pattern Study

Solar radiation analysis heatmap overlaid on facade surface showing annual exposure in false color gradient

Solar Data → Fin Angles

Solar Analysis

Where it actually starts.

Early Rhino wireframe showing failed iteration of a facade panelization with overlapping geometry errors

Rhino — Iteration 03 (failed)

Rhino — Iteration 03 (failed)

Hand-drawn diagram on graph paper showing the seed logic for a circulation nesting algorithm

Circulation seed — hand sketch

Circulation seed — hand sketch

Python script snippet printed and annotated by hand with red pen showing recursive geometry generation

Script annotation — v0.1

Script annotation — v0.1

Grasshopper definition in early state with disconnected nodes and unresolved logic branches

GH definition — unresolved

GH definition — unresolved

Napkin sketch of a structural tessellation idea with arrows and dimensions in pencil

Tessellation idea — napkin

Tessellation idea — napkin

Code editor screenshot showing early Python function for panel sorting by solar exposure value

sort_by_solar() — first draft

sort_by_solar() — first draft

Printed plot drawing with dense overlapping lines showing an iteration before geometry cleanup

Plot — pre-cleanup

Plot — pre-cleanup

Physical paper model of a folded surface with tape and pencil marks showing panel numbering

Paper fold test — numbered

Paper fold test — numbered

Whiteboard diagram showing data flow between Grasshopper and Rhino with hand-drawn arrows

Data flow — whiteboard

Data flow — whiteboard

Terminal output showing a parametric script running with numerical iteration data

Terminal — running

Terminal — running

Rhino model showing mesh with unresolved self-intersections highlighted in red

Mesh errors — iteration 07

Mesh errors — iteration 07

Post-it notes on a monitor showing parameter names and target values for a facade script

Parameter notes — monitor

Parameter notes — monitor


parametric.py — Form
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# form / parametric.py
import rhinoscriptsyntax as rs
import math
 
def grow_facade(solar_data, panel_count):
"""
Derives facade geometry from annual solar exposure.
No two outputs are the same.
"""
panels = []
for i in range(panel_count):
angle = solar_data[i] * math.pi / 180
panel = rs.AddPlaneSurface(
origin_grid[i],
rotate(base_vec, angle),
scale(1.0, solar_data[i] / 90)
)
panels.append(panel)
return panels
 
# ↑ this is where the building starts
 

Every project starts here.

A blank editor, a problem, and the discipline to write a script no one has written before.

"The algorithm is the sketch. The script is the hand."