Topotoy Labs
@topotoylabs.bsky.social
๐ค 216
๐ฅ 9
๐ 163
I enjoy pain. That is why I code simulation engines. My blog:
http://brashandplucky.com
pinned post!
Surfing a voxelized landscape (wrong gamma!).
#gamedev
#solodev
#sdl
loading . . .
12 months ago
1
40
5
I'm adding support for a new channel in my terrain streaming system for vegetation density. I am baking LOD'ed data from Copernicus Global Land Cover (PROBA-V LC100) for tree/shrub/grass cover. No vegeration rendering yet though. ๐
9 days ago
0
3
0
I finally fixed all the cracks at tile boundaries in my terrain engine + I started experimenting with run-time procedural fine detail over the GIS data
#indiedev
#gamedev
#computergraphics
#procedural
#terrain
#rendering
loading . . .
11 days ago
1
22
3
I finally found some time to try to make sense of and port (~ verbatim) to my Vulkan framework this paper and example code repo: (PB-MPM by Chris Lewin @ EA). I'll try to add dual coupling with rigid solids at some point.
#mpm
#sim
#vulkan
#gamedev
loading . . .
22 days ago
1
27
2
I've been fleshing out the subsystems for actors, user input, and Jolt physics integration.
#indiedev
#gamedev
#computergraphics
#procedural
#terrain
#rendering
loading . . .
23 days ago
1
22
6
Taking some clunky baby steps: Better actor vs. terrain collision + Mostly fixed cascaded shadowmaps
#indiedev
#gamedev
#solodev
#customengine
#procedural
#terrain
loading . . .
about 1 month ago
0
9
1
Getting ready to drop some non-procedural geometry in the terrain engine. ๐ฅ
#indiedev
#gamedev
#solodev
#customengine
#procedural
#terrain
about 1 month ago
0
12
2
Starting to add physics to the terrain! Dropping massive 500m spheres and watching them roll down the mountains ๐
#indiedev
#gamedev
#solodev
#customengine
#procedural
#terrain
loading . . .
about 1 month ago
2
15
4
Beyond GIS elevation data limits, procedural detail is added on the GPU. Elevation bounds for culling (yellow boxes) and tile heightfields for physics use async GPU read-back. Still experimental!
#indiedev
#gamedev
#solodev
#customengine
#procedural
#terrain
loading . . .
about 2 months ago
0
12
1
A new elevation cache (leveraging the same systems as the render tiles cache) will be used to cook heightfields for the physics system. Actors (like the camera) read-back tiles from the GPU in their vicinity at a specific LOD level.
#solodev
#indiedev
#gamedev
#customengine
#procedural
#terrain
loading . . .
about 2 months ago
1
16
3
Ocean waves swell in Z, intersecting terrain in low areas like beaches. I render terrain into the stencil buffer to exclude water from terrain pixels. The first part of the video toggles stencil on/off.
#solodev
#indiedev
#gamedev
#procedural
#terrain
#rendering
loading . . .
about 2 months ago
0
15
3
First integration of the ocean system into the terrain with aerial perspective ๐
#solodev
#indiedev
#gamedev
#procedural
#terrain
#rendering
loading . . .
2 months ago
0
20
4
This is an implementation of what I was talking about in my previous post: A grid in screenspace, clipped to the horizon (conic) of the planet (a sphere) for ocean rendering. ๐งต
#solodev
#indiedev
#gamedev
#procedural
#terrain
#rendering
loading . . .
2 months ago
1
18
2
For planetary ocean rendering I use a screen-space projected grid. The grid starts as a flat mesh in NDC, and each vertex is projected onto the sphere surface. But what about vertices that point at the sky? You need to clip the grid to the horizon. The horizon is a CONIC SECTION.
#solodev
#gamedev
2 months ago
1
16
2
Waking up in the Grand Canyon ๐ Still doing optimizations and clean-ups before going back to ocean rendering.
#indiedev
#gamedev
#computergraphics
#procedural
#terrain
#rendering
loading . . .
2 months ago
0
13
2
Here's where I'm at, combining some of the building blocks I've been working on recently: terrain LOD, atmosphere with aerial perspective, starmap, and auto-exposure.
#indiedev
#gamedev
#computergraphics
#procedural
#terrain
#rendering
loading . . .
2 months ago
3
21
3
You wake up in the middle of the night, floating in space. No ground. No walls. Nothing to grab. Just you and the stars...
#indiedev
#gamedev
#computergraphics
#procedural
#terrain
#rendering
loading . . .
2 months ago
0
10
2
A first something-ocean... Still massive amounts of work to do in terms of appearance, numerical precision at large scale, etc...
#indiedev
#gamedev
#computergraphics
#procedural
#terrain
#rendering
loading . . .
3 months ago
2
9
2
This is the UV space the ocean waves will be rendered in (100km per tile in the video). Still chasing some planetary-scale numerical precision issues both near the horizon and at close range...
#indiedev
#gamedev
#computergraphics
#procedural
#terrain
#rendering
loading . . .
3 months ago
0
10
2
Starting work on ocean waves. This is a camera-space grid where each vertex is raycast-projected onto the planet. Quads where at least one vertex misses the sphere are squashed onto the sphere's boundary (blue).
#indiedev
#gamedev
#computergraphics
#procedural
#terrain
#rendering
loading . . .
3 months ago
0
9
2
I added to my geo data baking system the ability to precompute the [lo..hi] elevation range for each tile to have the ability to do tighter (frustum, skyline, ...) culling in render-time.
#indiedev
#gamedev
#computergraphics
#procedural
#terrain
#rendering
loading . . .
3 months ago
0
19
2
Happy New Year everybody! Wrapping up 2025 and heading into 2026 happy that my terrain system is starting to pan out ๐ฅณ
#indiedev
#gamedev
#computergraphics
#procedural
#terrain
#rendering
loading . . .
3 months ago
1
10
2
I've been implementing in Vulkan both the LUT precalc and runtime shading from "Precomputed Atmospheric Scattering" by Bruneton/Neyret. What a masterpiece of a paper! ๐คฏ
#indiedev
#gamedev
#computergraphics
#procedural
#terrain
#rendering
loading . . .
3 months ago
1
11
3
My planetary-scale engine is finally behaving. Recently I've been battling I/O stutter and cache thrashing. Here's where it's at:
#indiedev
#gamedev
#computergraphics
#procedural
#terrain
#rendering
loading . . .
3 months ago
6
80
3
Merry Christmas everyone all over the world! ๐๐ ๐
#indiedev
#gamedev
#computergraphics
#procedural
#terrain
#rendering
loading . . .
3 months ago
0
14
5
If you can think of a better approach, let me know! To bake the ~3TB Copernicus DEM dataset into 80GB of mipmap-pyramid tiles, here's what I did ๐งต
#indiedev
#gamedev
#computergraphics
#procedural
#terrain
#rendering
3 months ago
1
8
4
The GLO-30 Copernicus DEM (ESA) is a global lat-lon mosaic of 360x180 grayscale elevation tiles. Each tile covers 1ยฐร1ยฐ, stored as a floating-point TIFF (meters), at 3601ร3601 px. The full dataset reaches 1296000x648000 samples worldwide.
#indiedev
#gamedev
#procedural
#terrain
3 months ago
1
6
3
Standard vs. "Relaxed" cube-sphere projection on Earth ๐ 1: Classic normalization. Notice the stretching at cube corners. 2: NASA's relaxed formula. Nearly uniform cells everywhere. A little thread on the math ๐งต
#indiedev
#gamedev
#computergraphics
#procedural
#terrain
#rendering
loading . . .
4 months ago
1
20
4
I am chugging through literal terabytes of topographical info for my terrain system. Re-projecting, mip-mapping, ... I hope to have some pretty stuff to post soon.
#indiedev
#gamedev
#computergraphics
#procedural
#terrain
#rendering
loading . . .
4 months ago
0
17
3
If by "flat" you mean an ellipsoid where the radius along the equator is 6371 km and the radius at the poles is 21 km shorter, then yes.
#indiedev
#gamedev
#computergraphics
#procedural
#terrain
#rendering
loading . . .
4 months ago
1
11
4
Some more progress in my planetary streaming/rendering system. Some technical details below. ๐
#indiedev
#gamedev
#computergraphics
#procedural
#terrain
#rendering
loading . . .
4 months ago
3
18
4
Some more infrastructure for planetary-level terrain data streaming & rendering I am working on: "Edge-length"-based (raster) quad-tree splitting + frustum/horizon culling.
#indiedev
#gamedev
#computergraphics
#procedural
#terrain
#rendering
loading . . .
5 months ago
4
69
10
If you fly a plane while maintaining a constant compass heading, you'll trace a STRAIGHT line on a Mercator projection map, but your actual trajectory on the planet will SPIRAL into one of the poles.
#indiedev
#gamedev
#computergraphics
#computationalgeometry
#topology
loading . . .
5 months ago
4
37
7
This is my spherical terrain streaming demo sourced with a large dataset (200MB: about 1px every 2km) diced into 1-file per region with LZ4 compression and a TOC for fast pull-a-tile-by-its-ID.
#indiedev
#gamedev
#computergraphics
#computationalgeometry
#topology
loading . . .
6 months ago
1
27
3
I've extended my terrain streaming libraries to the sphere using HEALPix partitioning. Hysteresis radii for CPU/GPU load/activate, per-frame command budgets and sphere subdivision are all configurable.
#indiedev
#gamedev
#computergraphics
#computationalgeometry
#topology
loading . . .
6 months ago
0
19
4
Playing a little bit more with my new HEALPix framework. I took this 27360x13680 lat-long map from NASA Scientific Visualization Studio.
#indiedev
#gamedev
#computergraphics
#computationalgeometry
#topology
loading . . .
6 months ago
0
20
4
Just implemented HEALPix (Hierarchical Equal Area isoLatitude Pixelization) which is a very elegant way to subdivide the sphere: 1- Each cell divides into 4 smaller ones. 2- Every cell covers the same solid angle. 3- Cell centers lie on rings of constant latitude.
#indiedev
#gamedev
#geometry
loading . . .
6 months ago
3
42
5
Just implemented metric-aware Delaunay Triangulation on the sphere ๐ฃ Metric-aware => Every triangle respects the spherical metric, not the Euclidean one. Algorithm described below.
#indiedev
#gamedev
#computergraphics
#computationalgeometry
#topology
loading . . .
6 months ago
1
54
8
Blue noise on the surface of a sphere.
#indiedev
#gamedev
#computergraphics
#computationalgeometry
#topology
loading . . .
6 months ago
1
17
4
Extended my topology libs to work on non-Euclidean domains (spherical, toroidal, etc.) by turning mesh edges into geodesics. Below: Bridson's Poisson disk sampling across different domains.
#indiedev
#gamedev
#computergraphics
#computationalgeometry
#topology
loading . . .
6 months ago
2
48
7
This is a very rough demo of the two libraries I have been working on recently (CartoKit/TerraKit) for terrain generation and for terrain streaming. Now in 3D, using military perspective (tilted ortographic camera).
#procgen
#gamedev
#indiedev
#procedural
#terrain
loading . . .
6 months ago
0
15
3
I made some upgrades to my terrain streaming system: 1- asymmetric chunks/regions 2- circular vs. rectangular hysteresis zones 3- a "simulation window" that keeps a rect around the camera loaded in a contiguous block (instead of per chunk) of GPU RAM
#procgen
#terrain
#streaming
#gamedev
#indiedev
loading . . .
6 months ago
1
14
4
Procedural Island Generation Part III is here! ๐๏ธ Blending of multi-scale noise layers and mountain distance fields will will transform the paint map foundation into beautiful terrain. Read the full post:
#procgen
#gamedev
#indiedev
#procedural
#terrain
loading . . .
Procedural Island Generation (III)
Adding multi-scale noise layers, mountain distance fields, and elevation blending to create detailed terrain from the paint map foundation.
https://brashandplucky.com/2025/09/17/procedural-island-generation-iii.html
7 months ago
0
10
4
Testing my topology (DCEL/half-edge) library a little bit. Some Conway operators on a polyhedron and Catmull-Clark SubDiv. Simple matcap rendering in the viewport.
#indiedev
#gamedev
#procgen
#dcel
#halfedge
#computationalgeometry
#topology
loading . . .
7 months ago
0
25
5
My library TopoKit is essentially a DCEL/half-edge wrapper. I've now added support for face/edge/vertex attributes, and propagation of those during mesh operations.
#indiedev
#gamedev
#procgen
#dcel
#halfedge
#computationalgeometry
#topology
loading . . .
7 months ago
1
32
4
Mountain sharpness parameter to control peak steepness in procedural terrain generation: Transforms gentle hills into dramatic alpine ridges ๐๏ธ (Part of my ongoing series on procedural island generation).
#gamedev
#indiedev
#procedural
#terrain
#procgen
loading . . .
7 months ago
0
17
5
New blog post: "Procedural Island Generation (II)" - Building on our Delaunay/Voronoi mesh foundation, we now create a low resolution base elevation map that defines the overall island shape.
#gamedev
#indiedev
#procedural
#terrain
loading . . .
Procedural Island Generation (II)
This is a coding blog where I post about the various projects that I am currently working on, both at work, or as an independent researcher. Most content here revolves around computer graphics and physics simulation.
https://brashandplucky.com/2025/09/10/procedural-island-generation-ii.html
7 months ago
0
18
5
In my infinite terrain streaming system I decoupled CPU load/unload (red) vs GPU activate/deactivate (blue) into two separate (intersecting) hysteresis zones. I also added a trait to support different zone shapes.
#gamedev
#indiedev
#terrainrendering
#optimization
#graphics
loading . . .
7 months ago
0
25
6
New blog post: "Procedural Island Generation (I)" - Started a mini-series exploring terrain generation techniques inspired by the lovely mapgen4 project by @redblobgames.
brashandplucky.com/2025/09/07/p...
#gamedev
#indiedev
#procedural
#terrain
loading . . .
Procedural Island Generation (I)
This is a coding blog where I post about the various projects that I am currently working on, both at work, or as an independent researcher. Most content here revolves around computer graphics and phy...
https://brashandplucky.com/2025/09/07/procedural-island-generation-i.html
7 months ago
0
24
5
[ fBm + ( 1 - Chebyshev distance to the center (squared) ) times a time-changing constant ] remapped by a water-ground 1D gradient.
#gamedev
#indiedev
#procedural
#terrain
loading . . .
7 months ago
0
23
4
( 1 - Chebyshev distance to the center + fBm times a time-changing constant ) remapped by a water-ground 1D gradient.
#gamedev
#indiedev
#procedural
#terrain
loading . . .
7 months ago
0
28
4
Load more
feeds!
log in