January | Week 1 | ThreeJSFractalTree

I've come to the conclusion that I'm not good at finishing things without motivation. At work there's features, bugs and deadlines to implement, fix and keep respectively. And most important of all, a project with clear goals and it's, mostly, something I'm comfortable doing, like video playback and JavaScript.
When I get motivated to do a side project it's usually something that involves learning a new language and very often it involves coding everything from scratch, this obviously doesn't work as I simply don't spend enough time on side projects to see the results I need to see to keep myself motivated.

In an attempt to motivate myself to code more on side projects, as well as keeping that motivation going, I've decided to try to work on one project/game every month of this year.
I'm going to post weekly updates, probably on sundays, showcasing the progress and hopefully bring up some interesting things.

Since January is coming to an end I decided to do something simple so I decided to, once again, create a FractalTree... but in 3D!

ThreeJSFractalTree is, as the name might suggest, a simple "app" that draws a FractalTree in 3D using ThreeJS.
At the moment the tree itself is really just a 3D representation of a 2D Fractal tree but I will attempt to make an actual 3D Fractal Tree, if I manage to do it before February.

It was a fun little project and it was interesting to try out threejs which I've wanted to do for a long time but simply haven't taken the time to do.
The biggest difficulty was the math for the tree itself, I tried adapting the code I've used in some of my other FractalTrees but it didn't work, of course, because in 3D space x/y behave a bit differently, specifically the X & Y position is in the middle of the 3D Object being drawn not the bottom of it.

Screenshot-from-2018-01-29-19-08-46

I'll be cleaning up the code over the next few days as well as trying to make a proper 3D Fractal Tree, then I'll push it all to github :)

Comments

comments powered by Disqus