Nature With Kivy is a side project that I started in July 2019.

The backbone of this project based basically on one of my favorite book Nature of Code, which talks about how to simulate all kinds of nature patterns by coding. In the original work done by Daniel Shiffman, he explained everything in Java and visualized it with the software Processing.

To me, it was nearly a piece of art. I still remember how excited I was when I first read the book during my master. Being able to simulating nature phenomenon and learning how to code in one book was simply mind-blowing. I did not finish the book though. I translated the content into C++ and done a traffic simulation project with Qt. And the book was then left aside for a long time, until I came across Kivy recently.

Kivy is an open-source Python library, with which you can rapidly develop a GUI (Graphical User Interface) with cool features like a multi-touch apps. The flexibility of Kivy framework makes it possible to deploy the application on Windows, Mac Os, Linux, Android and Raspberry Pi. Instead of a GUI, you can also simply draw stuff in a window like in Processing. Or even cooler, you can animate whatever stuff you draw with Kivy.

With this in mind, I decided to take the chance and see whether I can translate his work into Python and visualize it with Kivy. Hence the name of this project: Nature with Kivy. Note that this is not a tutorial, it is just my attempt to get my hands dirty. In the coming sections, I will document what I have done, and explain how I understood the concept.

In case you want to join me, find a mistake or have suggestions, you are more than welcome to drop me a line.