Diffusion Limited Aggregation Diffusion Limited Aggregation uses the mechanics of a random walk causing particles to stop moving when they come within a certain distance of an already anchored point. Connecting points to their anchors creates a branching organization with a density and connections that resemble many natural growing patterns. This version includes the possibility … Continue reading

Mesh Import

Rhino to Processing This sketch expands on the earlier Half-Edge Mesh sketch, demonstrating how to generate a large HEM class from text files containing the vertex positions and the vertex indices for each face as comma separated lists. (To generate these .txt files from Rhino via Rhinoscript see this post.) The difference between this sketch … Continue reading

Mesh Export

Rhino to Processing In a previous post I covered the implementation of a Half-Edged Mesh as a class in Processing. In that definition, however, both the vertex coordinates and face indexing were hard-coded in the body of the script (Lines 8-9). This may be acceptable for a mesh with only 16 faces, but for most … Continue reading

Solar Incidence

Mesh incidence analysis Ted Ngai’s solar incidence definition has been the standard grasshopper definition for calculating solar position and sun angles since it was released over 2 years ago. Since that time, Grasshopper has released update after update and has switched from OpenNurbs to RhinoCommon for script components. Ngai’s definition is not significantly affected because … Continue reading

Half-Edge Mesh

 key to the HEM class methods and face splitting modifier This is a class to be used with the Anar+ library for Processing to create a half-edge (or doubly-connected) mesh datastructure which uses the parametric geometry of Anar’s faces, and points. The schema for this HEM class is based on the description of doubly-connected edge … Continue reading

PQ Hybrid

Discretization of complex surfaces into continuous planar quadrilaterals is not a terribly complex process; however, it is very sensitive to small adjustments in the initial conditions, so optimizing the panelization is. The simplest solution is to iterate many, many times over the entire mesh searching for an equilibrium. This definition is not concerned with optimization … Continue reading

BRep Unfold

When working with surface panelizations, I find physical models easiest to construct when the panels are grouped into linear strips which can be unfolded flat and lasercut. Grouping panels into strips reduces the number of pieces to organize and to assemble. Additionally, folded seams are usually more precise when working at small scales than glued … Continue reading

Quaternion Rotation

As always, Paul Bourke has some excellent information on Quaternions. Additionally some examples of Quaternion operations represented in code can be examined at the Game Programming Wiki. This definition is primarily concerned with using Quaternions to represent axis-angle rotation and has two methods: one rotates the point by a given angle, the second rotates the … Continue reading

CONTOUR: Visual(izing) Data

Some of my thesis work was recently selected by Contour Journal for their series on data visualization and its relationship to research methods among architects and designers. My submission draws from the custom mesh and lineweight display scripts for grasshopper preview geometry posted here earlier. The post—and the rest of the ongoing Visual(izing) Data series—can … Continue reading

ACADIA 2014 Hackathon

Nathaniel Zuelzke and I were invited to participate as ‘design champions’ in the Hackathon element of this year’s ACADIA conference. The overarching theme of the conference was Design Agency, a concept that has been a focal point of research for both of us. Given the loose format and short length of the event, we worked … Continue reading