RSSAmplifier

Blog

Nick's Blog

Projects in Math, Science and Programming

nickmcd.meRSS feed ↗10 posts

Latest posts

Procedural Hydrology: Improvements and Meandering Rivers in Particle-Based Hydraulic Erosion Simulations

Note: The full source-code used to generate all visualizations is available on Github here, unless specified otherwise. More modern iterations of the code will be discussed at the end. Preface Since the publication of my article on Procedural Hydrology through particle-based erosion simulation and the release of the source-code as SimpleHydrology over 3 years ago, [ ]

Deriving Wijmans-Hao Type Transport Correlations for Composite Membranes

In this brief contribution, a theoretical justification is presented for the Wijmans-Hao gas transport correlation [1], which relates the mass-transfer restriction factor in a composite membrane to the porosity / morphology of its support layer and geometric properties of its bulk layer. The corresponding derivation shows that the correlation corresponds to a two-step transport process. [ ]

Simulating Wind on Procedural Terrain using GPU Accelerated Lattice Boltzmann Method

Note: The full source code for this article can be found here (summarized version). Individual sections contain references to specific code snippets below. For a long time I have been working on generating terrain by simulating geomorphological processes. This primarily includes various forms of erosion, i.e. hydraulic, thermal and wind erosion processes. I believe that [ ]

Practical Embedding of Data as a Virtual File System in C/C++ Executables

Note: The source code for this project can be found here. The title image was made by me (generate your own with this gist). Compiled executables often load resources, such as image files or shader code, directly from disk at runtime. This has the effect that we require the resources to exist at some predefined [ ]

Exploring the Iterative Circumcenter Map: GPU Acceleration

Note: This is a companion article to the publication Nicholas McDonald, Ronaldo Garcia, Dan Reznik, Exploring the Dynamics of the Circumcenter Map , Mathematical Intelligencer, 2022 (to appear). arXiv: 2202.02551 Around new year 2020/2021, I was contacted by Dan Reznik to see if I could help with generating some visuals for an interesting, novel mathematical system [ ]

An Efficient Data Structure for 3D Multi-Layer Terrain and Erosion Simulation

Note: An implementation of the algorithms and data structures described below is publicly available on Github here in C++. It is common to reduce the problem of procedural terrain generation to finding a height-map by various means, e.g. continuous noise functions, diamond square algorithms, fractal noise or simulated erosion processes. While such methods allow for [ ]

High Performance Voxel Engine: Vertex Pooling

Note: The full source code for this system can be found [here]. Once again I find myself working on a procedural system (discretizing my world generation systems into voxels) and limited by the power of the data visualization (my engine). I decided to take another general look at voxel engines to see if I could [ ]

Clustered Convection for Procedural Plate Tectonics

Note: The source code for this project can be found [here]. One of the key goals of procedural terrain is the generation of a realistic heightmap representing the topography. In real systems, the topography has a strong coupling to a number of surface phenomena, e.g. hydraulic erosion, plant growth, wind erosion, etc. which yield the [ ]

DIY Math Expression Parser and Command Line Calculator

Note: The full source code for this project can be found here. Have you ever wondered how a digital calculator takes your written text expression and actually computes a result? Not to mention handling math errors, semantic errors or dealing with inputs like floating point numbers. I have! I was thinking about this problem while [ ]

Simple Particle-Based Wind Erosion

Note: The full source code for this project , as well as an explanation on how to use and read it, can be found on Github [here]. This project was rendered using my own [TinyEngine]. In the past year, I have been playing around a lot with particle-based erosion methods for terrain generation. I believe [ ]