Thin timber slats whose edges follow a wave, each a little out of step with its neighbour, make the undulating ceilings and walls seen in many lobbies. Each slat is a ruled surface between a top curve and a bottom curve, thickened into a board. One formula, grafted per slat, drives the lot.
Reference: choose on the canvas toolbar to load the finished definition.
Build it
Slats and positions along them
-
Place eight sliders: Slats: 30 (8 – 60) with Decimals
0; Spacing: 4 (2 – 10), Length: 120 (40 – 200), Depth: 10 (3 – 30), Amplitude: 8 (0 – 20); and Waves: 1.5 (0.5 – 4), Drift: 0.18 (0 – 0.6) and Thickness: 1.2 (0.3 – 3) with Decimals2. -
Place a Series (Sets), Slat no., and wire Slats → C. Place two Multiplication (Maths) components: Slat X (Slat no. → A, Spacing → B) and Phase (Slat no. → A, Drift → B).
-
Place a Range (Maths), Y values, with N set to
40, and wire Length → E: 41 positions along each slat. -
Place an Expression (Maths), Wave position, with F set to
x*y/z. Wire Y values → x, Waves → y and Length → z: how many waves along the slat each position is.
Top and bottom edges
-
Place an Expression, Top, with F set to
z*sin(2*pi*x + y). Wire Wave position → x, Phase → y with Graft on y, and Amplitude → z. You get 30 branches, one per slat, of 41 heights; each slat’s wave is shifted by its phase. -
Place an Expression, Bottom, with F set to
x - y*(0.6 + 0.4*cos(2*pi*z)). Wire Top → x, Depth → y and Wave position → z: the slat’s depth itself varies along its length. -
Place two Construct Point (Vector) components, Top points and Bottom points. On both, wire Slat X → X with Graft on X and Y values → Y; wire Top → Z on the first and Bottom → Z on the second.
Slats
-
Place two Interpolate (Curve) components, one for each set of points: one smooth curve per slat.
-
Place a Ruled Surface (Surface) and wire the top curves → A and the bottom curves → B. Branch by branch, each top curve is paired with its own bottom curve.
-
Place a Vector XYZ (Vector) and wire Thickness → X. Place an Extrude (Surface) and wire Ruled Surface S → B and Vector V → D: 30 boards.
-
Turn Preview off on both Construct Points, both Interpolates and the Ruled Surface.
What is happening
The pattern is one sine wave seen through 30 windows. Every slat uses the same wave along its length; only the phase changes from slat to slat, so the crests drift diagonally across the ceiling. With Drift at 0 all slats are identical and the wave runs straight across.
A ruled surface joins two curves with straight lines, start to start and end to end. That is exactly what a board cut from a flat sheet is, so the slats could be cut on a CNC router from their flat outlines.
Each update takes about one and a half seconds: 0.9 s to build the 30 boards and 0.55 s to draw them.
Things to try
-
Set Drift to 0, then to 0.6.
-
Raise Waves to 3 for tighter ripples, or Amplitude to 20 for deep ones.
-
Set Slats to 60 and Spacing to 2 for a denser ceiling.
-
Change the Bottom formula to
x - yfor slats of constant depth.