My name is Aaron and I would like to introduce myself.
I have been developing software for almost 35 years. I have always taken an interest in game development as it quite often gives insights into where computer technology is heading. The first computer I owned was a Sinclair ZX81 and the first game I wrote was a brickout style clone all in 1Kb.
In high school we had one and only one Apple IIe. At lunch time we would sit around that machine to program and play our own games. There was no curriculum for computers, everything we did was purely for self interest. One of the programs I wrote was to generate a terrain represented as a 3D mesh – you would draw lines representing the start, middle and end contours and the software would morph between them. You had to watch each line being drawn. You could rotate the scene at a staggering one frame per minute. We sat looking at the screen, fascinated at what this machine could do, with the teachers looking on with quizzical expressions. I think we all sensed that this was the beginning of something that would change everyone's lives.
I obtained a Bachelor of Mathematics Degree majoring in Computer Science and went out in the real world as a programmer for a Pharmaceutical Market Research company, The Australian Stock Exchange (working on Australia's first automated trading system) and Panasonic's Mobile Phone Research and Development, which revolved around mobile data and connecting phones to the Internet. Finally I started my own business and achieved financial success with my first business product called Instant Demo.
Which brings me to the present and my latest project, playing around with compute shaders on modern graphics cards. There is a physics engine demonstration called OE-cake: https://www.reddit.com/r/oeCake/ that held a great amount of fascination for me - I love physics simulations :) One of the things I noticed about this software was how rapidly it would slow down once it reached a certain number of particles. A bit of thought made me realize that this was due the nature of having to check each particle against every other particle, this being a classical O(x^ 2 ) relationship (10 particles = 10x10 = 100 calculations, a 100 particles = 100x100 = 10000 calculations. Obviously not linear. So I got to thinking wouldn't it be neat to implement something like OE-cake on modern graphics hardware, where the immense parallel processing power would help reduce this computational bottle neck. Was it possible to have a stable physics simulator with all particles interacting simultaneously? Maybe the answer has been found elsewhere, but I always like to work things out for myself, so I have spent a good part of 2016 and beyond developing such an engine. The result is Aaron's Particle Space: