Topotoy Labs
@topotoylabs.bsky.social
150 followers 9 following 70 posts
I enjoy pain. That is why I code simulation engines. My blog: http://brashandplucky.com
Posts Media Videos Starter Packs
Pinned
topotoylabs.bsky.social
Surfing a voxelized landscape (wrong gamma!). #gamedev #solodev #sdl
topotoylabs.bsky.social
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
topotoylabs.bsky.social
This system provides O(1) angle<->patchID queries (no spatial trees required), and is fairly low-distortion and reasonable-looking when unfolded.

I struggled with the implementation a little more than I anticipated, but here it is!
topotoylabs.bsky.social
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
topotoylabs.bsky.social
Feng-Shui, Zen decoration with cute/warm visuals. I bet that many people would dig that setting/aesthetic.
topotoylabs.bsky.social
- Stereograhically-project all other points.
- Add 3 auxiliary points creating a triangle large enough to contain all other 2D points.
- Do classic 2D Delaunay on the projected point set.
- The 3 aux points map to the point we picked as pole. The rest of points map to themselves. Done!
topotoylabs.bsky.social
- For better stability, take the point that is the furthest from its nearest neighbor in the sphere (I am using euclidean kdtree k=2) here.
- Rotate the pointset so said point becomes the top pole to send its projection to infinity while all other points will have a finite projection.
topotoylabs.bsky.social
If you take points on a sphere, project them on the floor from the top pole with stereographic proj., and compute the (2D) Delaunay there, you get the exact same triangle connectivity as if you'd triangulated directly on the sphere. Stereographic proj. preserves DT's "empty circumcircle" property.
topotoylabs.bsky.social
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
topotoylabs.bsky.social
In layman’s terms: distributions of samples that are roughly equally spaced, yet do not exhibit any noticeable pattern (as a regular lattice would). In more formal terms: distribs of samples whose spectrum lacks low-frequency components => they are devoid of low frequencies in the spectral domain.
topotoylabs.bsky.social
Blue noise on the surface of a sphere.

#indiedev #gamedev #computergraphics #computationalgeometry #topology
topotoylabs.bsky.social
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
topotoylabs.bsky.social
Congrats! The demo release is coming closer and closer!
topotoylabs.bsky.social
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
topotoylabs.bsky.social
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
topotoylabs.bsky.social
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
Procedural Island Generation (III)
Adding multi-scale noise layers, mountain distance fields, and elevation blending to create detailed terrain from the paint map foundation.
brashandplucky.com
topotoylabs.bsky.social
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
topotoylabs.bsky.social
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
topotoylabs.bsky.social
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
topotoylabs.bsky.social
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
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.
brashandplucky.com
topotoylabs.bsky.social
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
topotoylabs.bsky.social
[ fBm + ( 1 - Chebyshev distance to the center (squared) ) times a time-changing constant ] remapped by a water-ground 1D gradient.

#gamedev #indiedev #procedural #terrain