Tonight, I feel like I have closed a chapter in my life. For almost three years, I have been trying, on and off, to understand nebulae. In particular, I've been trying to generate them procedurally. If you look back over the log, you'll find several attempts:
2010 ~ http://joshparnell.com/blog/2010/08/14/procedural-nebulae/
2010 ~ http://joshparnell.com/blog/2010/08/25/procedural-nebulae-ii/
2011 ~ http://joshparnell.com/blog/2011/07/24/procedural-nebulae-2/
2012 ~ http://joshparnell.com/blog/2012/01/19/procedural-nebulae-3/
2012 ~ http://joshparnell.com/blog/2012/02/24/procedural-nebulae-revisited/
2013 ~ http://joshparnell.com/blog/2013/01/14/procedural-nebulae-iii/
Arguably, I've been getting better over the years. As my understanding of math improves, so does my ability to craft these lovely things. Although 2013's nebulae are significantly better than the rest (and, arguably, some of the better procedural nebulae out there on the web), let's face it, they still don't look like nebulae. But tonight, tonight I think that I have discovered the secret of nebulae. After three years, I finally feel that I understand these things. And I'm proud to say that my nebulae...finally look like nebulae.
Procedural Nebulae, Three Years Later
In yet another attempt to drive the lesson of simplicity into my mind, the universe has shown me that nebulae - in my opinion, some of the most gorgeous and complex objects out there - are actually simple. The image above was produced by 31 lines of code, which is far, far less than any of my previous attempts. The code that actually defines the nebulae itself is about 20 lines. Dead simple.