Entitled “Dynamic Clouds and Landscape Generation: Morphing and Evolutionary Processes”, the full version in PDF format is accessible in the “Free Books and Articles” section, here. Also discussed in details with Python code in my book “Synthetic Data”, available here.
My previous article focused on map generation in 3D, and also features a fascinating video, see here. In this article, while focusing on 2D, I provide a simple introduction to evolutionary processes in the context of synthetic data and terrain generation. Not just terrains: depending on the color palette, other processes such as storm formation can be simulated with the same algorithm.
The focus is on stationary processes. The analogy with random walks and Brownian motions is striking. Despite the simplicity, the systems modeled here are a lot more complex than your typical Brownian motion. You can compare it to time-continuous time series, where each observation (synthetically generated here) is an image. This article will appeal to practitioners looking for more sophisticated modeling tools, that mimic natural phenomena. It will also appeal to machine learning professionals looking for serious Python code, the kind of code typically not taught in classes or textbooks, and not found on the Internet. It offers a fun application to learn scientific computing.
I also explain how to produce animated data visualizations in Python (MP4 videos) featuring 4 related sub-videos in parallel, progressing at various speeds. In particular, the video shows the probabilistic evolution of a system from A to B, compared with morphing the starting configuration A into the final state B. In the end, this article can serve as an introduction to chaotic dynamical systems.
This article is an introduction to computer vision techniques in Python, diving into the technical details of a specific class of problems. I show how to use generative models based on synthetic data, to simulate terrain evolution or other natural phenomena such as cloud formation or climate change. The presentation is accessible and targeted to software engineers interested in understanding and applying the machine learning and probabilistic background behind the scene, as well as to machine learning professionals interested in the programming aspects and scientific computing. The end-goal is to help the reader design and implement his own models and generate his own data sets, by showcasing an interesting application with all the details. My Python code can also be used as an end in itself.
From a machine learning perspective, the stochastic processes involved can be compared to spatial time series or time-continuous chaotic dynamical systems. There is a similarity with constrained Brownian motions, where at each time, rather than observing a typical observation (say a vector of stock prices), the observation consists of a particular configuration of the entire space (for instance, a moving storm system at a given time). In this article, the focus is on stationary-like processes. I briefly discuss the probabilistic models behind my algorithms, to explain when they work, and when they don’t. However, I limit theoretical discussions to the essential, so that software engineers and other professionals lacking a strong mathematical background, can easily read and benefit from my presentation.
A possible use of my methodology is to automatically generate and label a large number of different landscapes (mountains, sea, land, combinations, and so on) to create a large training set. The training set can be used as augmented data for landscape classification, or to generate more landscape within a specific category to further enrich the classifier. The methodology can also be used to simulate transitions and reconstruct the hidden statistical behavior over short periods of time, when granular observations are not available. Finally, in addition to modeling and simulating uncontrolled evolutionary processes, the animated data visualizations also feature image morphing, both in the state space (coalescing physical shapes) and the spectral space (palette and color morphing).
Table of Contents
- Terrain generation and the evolutionary process
. . . Morphing and non linear palette operations
. . . The diamond-square algorithm
. . . The evolutionary process
- Python code
. . . Producing data videos with four sub-videos in parallel
. . . Main program
Download the Article
The technical article, entitled Dynamic Clouds and Landscape Generation: Morphing and Evolutionary Processes, is accessible in the “Free Books and Articles” section, here. It contains links to my GitHub files, to easily copy and paste the code. The text highlighted in orange in this PDF document are keywords that will be incorporated in the index, when I aggregate all my related articles into books about machine learning, visualization and Python, similar to these ones. The text highlighted in blue corresponds to external clickable links, mostly references. And red is used for internal links, pointing to a section, bibliography entry, equation, and so on.
To not miss future articles, sign-up to our newsletter, here.
About the author
Vincent Granville is a pioneering data scientist and machine learning expert, co-founder of Data Science Central (acquired by TechTarget in 2020), founder of MLTechniques.com, former VC-funded executive, author and patent owner. Vincent’s past corporate experience includes Visa, Wells Fargo, eBay, NBC, Microsoft, and CNET. Vincent is also a former post-doc at Cambridge University, and the National Institute of Statistical Sciences (NISS).
Vincent published in Journal of Number Theory, Journal of the Royal Statistical Society (Series B), and IEEE Transactions on Pattern Analysis and Machine Intelligence. He is also the author of multiple books, including “Intuitive Machine Learning and Explainable AI”, available here. He lives in Washington state, and enjoys doing research on spatial stochastic processes, chaotic dynamical systems, experimental math and probabilistic number theory.