# Fluid Dynamics on the GPU

Fluid simulation running on the GPU using OpenCL, OpenGL used for rendering. 40 Iterations of the Jacobi method to compute the pressure, and 10 for the diffusion.

ps: The application runs at a steady 60fps, the video capture doesn’t do it justice (ask for the original video or the code).

# Monte-Carlo path tracing

# Resume

# Engine simulation

I have recently started to build an Inventor plugin. The idea is to model the pieces that make up an internal combustion engine using Inventor. The plugin would essentially use the Inventor API to simulate the physics of an internal combustion engine. Primarily the conversion from chemical energy in the combustion chamber to mechanical energy tranfered to the crankshaft. I think it would be a fun and educational side project.

# HTM Algorithm

I recently got very interested in Numenta’s work on HTMs, I think the core idea is brilliant. I though I’d give it a shoot, as a weekend project (for more information on Numenta: https://www.numenta.com/).

The idea is that I would feed information about a sin curve to a small HTM and see how fast it would learn to predict the reoccurring patterns. In the case of a sinusoidal curve, the pattern is easy to pickup, but would the HTM figure it out? So far, it’s been fun, I am only scratching the surface, obviously, but I can already see that the algorithm has enormous potential.

# Photon mapping

The basic technique is simple. The rendering equation involve a surface integral over the dome defined by the point of contact and the surface normal. To approximate that integral, we sub-sample the space within that dome. That is a form of Monte-Carlo integration. Any photon within that space participates in the lighting equation. Photons as defined in this context contain more information that just the energy they carry at a point in space. They are stored in a photon map, which for me is a balanced KDTree. As of right now, I am not satisfied with the final image rendered. I need to spend more time looking at my final gathering phase. I will when I have more time.