torus particles

A particle system simulator written in three.js. With this project I explored the use of global gravitational and spring forces, rather than considering all pairwise interactions, to drive the particle dynamics. Each particle is attracted to a center of gravity that moves along a torus knot, and is periodically pulled back to its starting point using a spring force. Updating the dynamics in such a way gives the appearance of flocking behavior, but also allows the simulation to scale to large numbers of particles since it isn't necessary to consider all pairwise interactions. I also used this project to test out Google's fantastic three.js user interface tool dat.gui.

[play | code]


Tubeworld is a procedurally generated world that uses simple geometric shapes as structural primitives. With this project I hope to explore the range of interesting visual experiences that can be created from combining simple dynamics rules with simple shapes. It is also an opportunity for me to learn more about graphics programming and how to organize larger software projects. Tubeworld is implemented in C++ and OpenGL.



As opposed to the bottom-up approach taken by the tubeworld project, the vid-viz project uses preexisting source images or videos and performs real-time image processing on them with OpenCV in Python.


Image processing with neural networks

The recent explosion in the popularity of deep convolutional neural networks has stemmed from their impressive performance on traditional computer vision tasks. Though I am interested in the design and implementation of networks for solving these tasks, I am perhaps even more excited about the artistic possibilities they have created. Google's deep dream algorithm is the most popular example of these new possibilites, but of course there are many others. I am also particularly interested in methods for style transfer using already trained networks, examples of which can be found here and here.