Maciej Sachse
/work/maker-chair-final

/022023 – 2025

Maker Chair — Final Design

A 2.5-year solo continuation of the workshop: an organic lattice fused with bone-like diamond elements, ready to print and assemble.

role
Individual work
location
Warsaw University of Technology
tutors
Krzysztof Nazar
tools
Rhino · Grasshopper · Karamba3D · Python
Maker Chair — Final Design

Overview

Building on the workshop, I developed the concept individually, inspired by organic forms and the potential of algorithms in design. The final form is an organic, tree-like lattice with diamond-shaped bone elements embedded into it, forming a truss that blends into the overall silhouette. Every part has a planar side so it 3D-prints flat and clean — a ready-to-print, numbered, easy-to-assemble set.

Branch geometry is driven by a space-colonization algorithm. Nutrient points P(x, y, z) are randomly generated inside a cylinder of radius R and height H — radius r = random(0,1) · R for uniform distribution, angle θ ∈ [0, 2π], height z ∈ [-H/2, H/2]. Branches then grow iteratively toward the averaged direction of nearby attractors; a kill-range removes points too close to a branch to prevent instability.

A custom LT / LB / RT / RB numbering system, plus an opposite-side index marking each element's position in the lattice matrix, makes assembly tractable. The whole design collapses into a single 'golden button' script: adjust the number of diamond elements, the chair's height, even swap the boundary surface — and the structure regenerates.

Chair — view from below
Chair — view from below
Prefabrication & assembly — exploded diagram and lattice numbering

Prefabrication & assembly — the 'golden button' script

Two numbering logics run in parallel so every element prints flat and slots into its place. The exploded axonometry doubles as a communication drawing and an assembly manual — the piece that made the 'golden button' script possible.

  1. Every piece is numbered, planar, and oriented
  2. Diamonds: corners labelled A / B / C / D plus a lattice index, so adjacent faces mirror correctly
  3. X-intersections: each arm labelled LT / LB / RT / RB, with an opposite-side index aligning it inside the overall matrix
  4. After many trials, the only numbering scheme that handled every case without exceptions
  5. One parameter tweak (element count, chair height, boundary surface) regenerates the whole chair
Space colonization algorithm — explanation
Space colonization algorithm — explanation
Structural optimization — PLA shell FEM

Structural optimization of the seat

FEM analyses compared 1 cm, 2 cm and 4 cm PLA shells at 50% infill against a 2 cm displacement / 2% stress target.

  1. 1 cm shell: 11.73 cm displacement, ~14% stress — far above target
  2. 2 cm shell: 6.5 cm displacement — still out of spec, risk of failure
  3. 4 cm shell: under 2 cm displacement, below 2% stress — all requirements met
Branch script logic — space colonization

Branch script — six-step logic

A space-colonization algorithm drives the lattice. Growth direction at each branch tip is the normalized sum of unit vectors pointing to every attractor within its attraction distance — producing a natural, non-repetitive silhouette.

  1. Define the bounding volume
  2. Distribute attractor points inside it
  3. Branches start growing from the base
  4. Branches split toward attractor clusters
  5. Curves are smoothed
  6. Final form emerges
Exploded axonometric — the chair's four functional layers separated vertically
Exploded axonometric — the chair's four functional layers separated vertically