💦 CREATE AND FUCK YOUR OWN AI CUMSLUT 🔥 TRY NOW ♥
Create AI Cumsluts 💦
October 27, 2026

PlanetGen: The Math Behind Walkable Planets in UE5

A planet you can walk on, built from a cube. This case study follows PlanetGen's real maths from six flat grids to a streaming planet, with the formulas on screen and real Unreal Engine footage in every chapter.

Why a latitude and longitude grid pinches at the poles. How PlanetGen pushes a cube out to a sphere, and warps each face with tan(u x pi/4) first so equal steps give equal angles. Chunks, vertices and height along the radius. Noise sampled in 3D so the six faces agree at their edges, and a continent mask that keeps mountains on the land. Normals from four neighbours, with one extra ring of samples so chunk edges match. The horizon cone that decides which chunks load, far planets that swap in without a pop, and ring worlds built by the same pipeline.

The diagrams are drawn in code. The footage was captured in Unreal Engine 5.

────────────────────────────────────────

🧩 GET IT

────────────────────────────────────────

► PlanetGen on FAB

► PlanetGen docs

► Project Files

🎮 Free Playable Demo

► Discord Community

────────────────────────────────────────

🪐 WHAT IS IN IT

────────────────────────────────────────

✔ A cube's six faces, each a grid with u and v running from -1 to 1

✔ Plain normalize: of nine equal steps, the middle cell covers 12.7 degrees, the edge cells only 7.1

✔ PlanetGen's mapping: dir = normalize(N + U x tan(u x pi/4) + V x tan(v x pi/4)), equal steps give equal angles

✔ Chunks per face = round(R x pi/2 / Tile Size): 9 x 9 x 6 = 486 on the default 6 km planet; 32 x 32 x 6 = 6,144 (the cap) on the 50 km planet in the footage

✔ 64 x 64 vertices and 7,938 triangles per chunk; height along the radius: position = dir x (R + h)

✔ Noise sampled in 3D at the point on the smooth sphere, so two faces read the same value on their shared edge

✔ The continent mask: mask = smoothstep(clamp((C + threshold) / blend, 0, 1)), the other layers weighted by it

✔ Normals: cross(R - L, U - D) from four neighbours, with one extra ring of samples (66 x 66 for 64 x 64 vertices)

✔ Horizon culling: a cone of acos(R / D) + acos(R / (R + peak)) + 7.5 degrees + one chunk; a chunk loads when it is inside

✔ On the default planet, standing on the ground: about 40 degrees, about 12% of the planet instead of about 55%

✔ The 50 km planet from above: about 40 degrees again, roughly 700 of its 6,144 chunks loaded

✔ Far planets: one low-poly sphere (6 x 32 x 32 = 6,144 vertices) just above the peaks; it sinks below the terrain once about 90% of the nearby chunks are built, and needs only 70% to stay down

✔ Ring worlds: one face wrapped round a cylinder, angle = u x pi, along the axis = v x L/2