Stage tweaks today. The order they happened in matters.
The desert came first. Sparse trees, a mech, and a question. Do the trees fall when I walk through them. They did.
That answer cost me two side projects. If a tree could fall, why not a building. I started a quick test inside Overmass. The quick test grew teeth: mass, propagation, voxel splitting, frame rate. I knew if I kept going there I would stop making Overmass and start making a destruction engine. So I pulled it out. Rubble was the first split. RubbleVox followed when I needed the same idea on voxelized geometry.
Once both worked I came back and built a city. Randomized layout, generated per run. City became stage 1. The desert got pushed to stage 2.
That stayed for a while. It worked. But stage 1 and stage 2 did not relate to each other in any way the player would ever feel.
Today I switched them around.
The city now sits inside the desert. Same buildings, same Rubble system, but the floor is sand and the buildings are spaced like ruins instead of streets. I do not have to design a city plan. No grids, no intersections, no signage. The buildings can stand anywhere because they are abandoned. That reads as fiction, not as cheating.

Stage 2 used to be the desert with sparse trees. With stage 1 absorbing the desert, stage 2 needed something else. I took the same tree system and inverted every dial. More trees. Closer trees. Green grass instead of sand. What came out is a jungle. Same shader family, opposite density, opposite palette.
The trees are still cap shapes. Stem and bulb. They are not realistic foliage and I am not pretending they are. Real foliage is a simulation problem and I am not making a simulation. The cap shape reads as tree at a glance, blocks line of sight, falls over correctly when a mech walks through it, and renders cheap. Four wins for one shape.

What this gives me. Stage 1 and stage 2 are now the same idea seen at two densities. Empty desert with rare standing buildings, then full canopy with no buildings. The progression has a shape. It is also the first time the existence of Rubble and RubbleVox has paid for itself inside Overmass instead of looking like two side projects on the home page.
What is broken. The desert is flat. Dunes are next; flat desert is a parking lot with a tan filter. The jungle floor is a rolling green sheet that looks like a billiard table at a wedding venue. Terrain noise on both, next pass.
After that, the boss arena. Stage 2 boss currently spawns into the same canopy as the wave fights, which is a cute idea on paper and a mess in practice.