top of page

Creating procedural ceiling decoration I Nona Bocheva Week 18

Prototype


For the courtroom to look complete we need to add decoration to the ceiling. Since often ceiling decorations in courtrooms are geometric and repetitive it would be more feasible to create it procedurally.



As a base I had a grid with square divisions from the room blueprint. To modify the topology in such a way a tip from this YouTube tutorial - https://www.youtube.com/watch?v=EfhJ9msdLjo&t=1s - on the 'Divide' node's 'Compute Dual' option. As is mentioned in the tutorial this creates a Voronoi diagram from the mesh and its points. In simple terms, this operation creates a polygon for each point of the mesh and and for each edge that the original point had, it adds a side to the newly created polygon, that is perpendicular to the original edge. However to add more complexity I had to add more edges to the initial grid, so I remeshed every polygon. Compute dual does not create polygons for the points on the boundary, so it shrinks the ceiling. To keep the details and revert it to its original size we can branch off before we compute dual and convert the boundary edge to a line. We later merge that line with the mesh after 'Compute dual' in order to bridge it with the boundary edge of the newly created mesh.


Figure 1. Top left - initial grid; Top right - every face of the grid is remeshed. By setting the "Target Edge Length" of the Remesh node we can divide the face in such a way that a point is added in the center of each polygon and is connected to the corners and midpoints of the edges; Bottom left - "Compute Dual" on the Remeshed ceiling. Points with 8 edges are turned into octagons, points with 4 edges are turned into squares; Bottom right - new mesh with original boundary edge.


Base

For the base of the ceiling I selected the octagons, added some extrusion and bevels to them and bridged the mesh to its original size (Fig. 2)


Figure 2. Ceiling base mesh detailing - Top row, bottom left - extrusions, insets, bevels; Bottom right - bridged back to the original bounding edge, ngons divided to triangles


Additional decorations

The decorations are also driven by the base mesh of the ceiling, created with 'Compute Dual'. I converted the edges of the mesh to lines (Fig. 3). To drive the decorations I created some geometry to sweep along it.


Figure 3. Top left - initial lines; Top right - carved lines; Bottom left - procedural detail sweeped along lines; Bottom right - instanced mesh

To create the twisted effect I used the 'Bend' node to twist the inner part of the decoration, then deleted the polygons that face up and flattened the element. To have a consistent twist over all elements I drove the twist amount by the length of each of the initial lines. To finish up the decoration I reused the ornamental model that I used to finish the arches in the last blogpost and copied it to the points of the ceiling mesh.

Note on working with the setup

Decorating the ceiling in a procedural way was fun, and I was surprised with how well it responded to changes. However, since it generates many elements after each upstream change (even to changes to the room blueprint) it can be quite slow to wait for it when tweaking something. In this case I found it is best either to hide the object containing the decoration or, if tweaking the appearance of the decoration, to reduce the size of the room.

Comments


bottom of page