Topotoy Labs
@topotoylabs.bsky.social
๐ค 199
๐ฅ 9
๐ 126
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 . . .
9 months ago
1
40
5
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 days ago
2
8
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 . . .
7 days ago
0
9
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 . . .
8 days 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 . . .
11 days 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 . . .
17 days 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 . . .
20 days 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 . . .
22 days ago
6
80
3
Merry Christmas everyone all over the world! ๐๐ ๐
#indiedev
#gamedev
#computergraphics
#procedural
#terrain
#rendering
loading . . .
24 days 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
25 days 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
26 days 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 . . .
30 days 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 . . .
about 1 month 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 . . .
about 2 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 . . .
about 2 months ago
3
19
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 . . .
2 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 . . .
3 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 . . .
3 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 . . .
3 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 . . .
3 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 . . .
3 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 . . .
3 months ago
1
54
8
Blue noise on the surface of a sphere.
#indiedev
#gamedev
#computergraphics
#computationalgeometry
#topology
loading . . .
4 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 . . .
4 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 . . .
4 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 . . .
4 months ago
1
15
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
4 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 . . .
4 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 . . .
4 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 . . .
4 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
4 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 . . .
4 months ago
0
26
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
4 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 . . .
4 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 . . .
4 months ago
0
28
4
I just finished my content-agnostic heavily-concurrent infinite-terrain system. I can now inherit from a (procedural) TerrainProvider class and everything else will happen auto-magically.
#gamedev
#indiedev
#procedural
#terrain
#infinite
loading . . .
4 months ago
4
21
4
Poisson disk sampling constrained to another Poisson disk sampling. Valid positions for the large dots are constrained to positions from the small dots.
#gamedev
#indiedev
#procedural
#computationalgeometry
#algorithms
loading . . .
4 months ago
0
17
7
Voronoi diagrams: circumcenters vs. centroids. 1: Using tri circumcenters. Classic/pure, angles are more abrupt. 2: Using tri centroids instead. Smoother, bubble-like regions.
#proceduralgeneration
#gamedev
#computergraphics
#voronoi
#terraingeneration
#indiedev
loading . . .
4 months ago
0
20
5
Little viz of Bridson's algorithm (blue noise). Each point (red=active) tries to spawn 1 new active point in its (orange) [r..2r] annulus. Green=success, red X=failed attempts. When no valid spots remain after k tries, the point turns blue (inactive).
#geometry
#gamedev
#math
#algorithms
loading . . .
4 months ago
1
12
4
Little viz of Lloyd's relaxation: iteratively move random points to their Voronoi cell centroids, naturally organizing into a hex-dominant grid. Gray trails show each point's journey from chaos to order.
#voronoi
#computationalgeometry
#algorithms
#math
loading . . .
5 months ago
1
3
0
Porting my little topology-focused library to RUST at the moment.
#rust
#rustlang
#topology
#programming
#coding
5 months ago
1
10
1
Been diving deep into the fascinating world of terrain generation lately! @redblobgames and his incredible blog have been an absolute goldmine of insights and techniques.
#terraingeneration
#procedural
#computergraphics
#gamedev
5 months ago
0
9
1
Finally finished that spherical harmonics post that's been sitting in my drafts for 2 years. It's about encoding panoramic radiance with just a few coefficients.
#computergraphics
#rendering
#sphericalharmonics
#graphics
#gamedev
loading . . .
Spherical Harmonics
A math tool you can use to encode/decode the radiance arriving at a point with just a few coeffs.
https://brashandplucky.com/2025/08/25/spherical-harmonics.html
5 months ago
1
12
3
Recently, I've been adding support for WebGPU and Vulkan (alongside OpenGL) to my homebrew engine. To inaugurate support for compute shaders, here's a side-by-side of classic DDA vs. Hierarchical DDA on a 256^3 voxel field.
#WebGPU
#Vulkan
#ComputeShaders
#GameDev
6 months ago
1
20
3
Itโs fascinating how the velocity field highlights water streams tracing โstill activeโ solution paths, while everything else falls silent.
#gamedev
#solodev
#indiedev
#customengine
#physics
#sim
#CFD
#FluidDynamics
loading . . .
8 months ago
0
19
5
Witness FLIP water solve a maze!! ๐ Stress-testing my FLIP fluids sim (incompressibility, no tunneling, etc...).
#gamedev
#solodev
#indiedev
#customengine
#physics
#sim
loading . . .
8 months ago
8
125
16
Just finished a PIC/FLIP fluidโsolver subclass on top of my custom Eulerian engine! ๐ Plenty of room to optimize, but Iโm thrilled with how itโs coming together. ๐
#gamedev
#solodev
#indiedev
#customengine
#physics
#sim
loading . . .
8 months ago
0
9
2
reposted by
Topotoy Labs
Ditiem Games
9 months ago
I did participate in a game jam this weekend. If you have a chance to test the prototype I would like to hear you opinion / feedback:
ditiemgames.itch.io/shaman
loading . . .
Shaman by ditiem.games
Play in your browser
https://ditiemgames.itch.io/shaman
0
2
1
I threw some multi-threading into my Eulerian fluid sim, using Red-Black Gauss-Seidel for the projection step and parallelizing all the embarrassingly-parallel bits. So now mid-sized sims crank out way faster. 2048x1024 cells here ๐
#gamedev
#solodev
#indiedev
#customengine
#physics
#sim
loading . . .
9 months ago
1
11
2
Why do planes fly? (A simplified explanation) High pressure under the wing pushes up, and low pressure above pulls up. This net pressure difference creates lift. This is a visualization of the pressure field in yesterday's wind tunnel sim.
#gamedev
#solodev
#indiedev
#customengine
#physics
#sim
loading . . .
9 months ago
0
10
3
I'm having real fun with my tiny simulated wind tunnel. :-P Here's a NACA 0012 airfoil under an increasing angle-of-attack, facing boundary layer separation (stall) at about 12-15 degrees.
#gamedev
#solodev
#indiedev
#customengine
#physics
#sim
loading . . .
9 months ago
2
57
7
Load more
feeds!
log in