About Me

I'm Joel Clay, and I'm a software engineer based in NYC. I'm currently working in the Columbia University Creative Machines Lab where I'm working on OpenDML, a GPU engine for simulating lattice based structures for 3D printing.

I previously worked at both my own startups, and later for Common where I built our technology platform for managing billing, legal and other operations for our properties.


Selected Projects

OpenDML

OpenDML is capable of simulating large scale spring-mass based structures. By leveraging a parallel GPU based implementation, we are able to achieve realtime simulation of structures composed of millions of elements. (J. Clay, A. Gaudio, H. Lipson, Massively parallel GPU-enabled spring-mass simulation in preparation (2019))

Features:

  • Custom Design Markup Language developed to specify integration method, lattice configuration, loadcases and much more.

  • Qt GUI for visualization.

  • Headless mode for increased performance.

  • Cross platform (macOs, Windows, Linux)

Topology Optimization OpenDML also implements the ability to perform simultaneous simulation and topology optimization. We are able to achieve an optimized shape and configuration of the lattice in response to user configured constraints and the realtime response to the structure under load.

OpenDML simulating a cantilever beam under load

Further Capabilities

OpenDML is capable of parsing 3D models and filling them with a lattice under a number of configurations. Here, I show a femur being filled with a lattice with OpenDML, simulated to verify it's performance under realistic load conditions, and finally printed.

femur Left: OpenDML has filled this 3D Femur model with a lattice and ready for simulation. Right: The femur exported to STL and ready for 3D printing

The 3D printed result

Misc

Modern CMake CUDA Example. An example showing how to use the latest CMake support to configure CUDA on Windows.

Cppyy kNearestNeighbors A small project showing how to use Cppyy to automatically generate Python bindings for a C++ project.


Development Journal

I try to keep various findings and other development topics in my journal here.