My Newest Little Project

Sometimes it is worth stepping back from work related projects and focus on something that you find more fun. Over the last month or so, I started to work on a couple of these fun little projects.

The project I’m going to show here is a sand simulator. There is a short animated gif shown below.

This project came from watching a Youtube video where someone explained creating their own version of a sand simulation. I used many of their ideas, but implemented them in my own ways. What you see above is the current version of what I have been playing with. The app includes 8 different types of particles that interact with each other in different ways. Sand will pile up like sand does. Water attempts to level itself. Snow and ice pile up in their own ways and fire will turn water, ice or snow into steam that will rise off the screen.

There were many interesting techniques used to make this all happen with the main movement based on Cellular Automata theories. Each particles moves by looking at it’s surrounding neighbors and then decided how to move. For the most part, they only care about the 8 locations directly surrounding them. As simple as that sounds, it allows for some interesting and occasionally surprising interactions.

Doing this project let me work through some interesting programming issues, while at the same time giving me something fun to play with. A majority of the code fits in around 400 lines and it does everything you can see above.

So, if you find yourself stuck – step back and find a small project that appeals to you and work on that. It will not only better your programming skills, but it will also allow your brain to reset before you return to your actual work.

While Working On Your Own Reach Out To Others.

This is another topic that seems slightly obvious, but it also highlights an easy trap to fall into. Programmers are often drawn into their projects and tend to ignore the world around them. It is a necessary part of the job, but it is also a risky one. So, I implore you to step outside of that zone at times and reach out to others. This isn’t just when you need their help. It is also true when things seem to be going okay.

Why, you ask? For a break, and also for perspective. In the end, our projects are going to be used by other people. It’s important to get some feedback from others in order to know if our ideas are working or not. But, it also gives us a chance to give our brains a break. It is easy to get so focused on solving problems that we miss the easiest solutions. Forcing yourself to step back occasionally will often avoid that trap.

So, yeah. Take some time for other people – even if it’s a short online chat or email. Getting that contact with another real person can sometimes make all the difference in a successful project. Yes, you have time to take a few minutes away from your project – both the project and your sanity require it.