# Fog of war Unexplored ground is black with a soft edge. The sky and the first few grains of the surface start seen. Exploration never changes the simulation. ## Data and revealing `src/sim/fog.js` keeps a `Uint8Array` at half the grain resolution (`FOG = 2`). Values run from 0 (unseen) to 255 (seen) and only increase. `alloc` allocates it with the other world arrays. `fogInit` reveals above `surfY` and fades 16 grains below it. Every four ticks, 256 rays from the bot's centre reveal up to 48 grains. The last 16 grains fade out. Solid and powder stop sight after an eight-grain fade into their face; air, gas and liquid pass sight. Bars and machine voids do not block it. Each look also senses the ground around the bot through rock: every fog cell within `FOG_SENSE` (24 grains) of the bot is revealed, fully clear out to 12 grains and fading over the outer 12 grains to nothing at 24, so the player can see ore and caves next to their tunnel and choose where to dig. ## Saving The fog buffer is saved and exported with the other typed arrays, without a save version change. Older saves rebuild the surface, reveal a radius of 12 grains around built blocks, machine footprints and molds, fully clear inside six grains with a six-grain fade to the radius edge, then look from the bot. Loading and generating also look immediately from the bot. ## Drawing and setting Both looks and the thermal lens sample fog bilinearly. Partly seen grains darken toward black along a smoothstep curve, with stable per-grain noise (up to about ±38 mid-fade, none at either end) to break up the half-resolution steps. Fully seen grains use the usual drawing; unseen grains are pure black (as is everything off the map) in both looks, hiding their shapes. Partial values dim foreground, background and trees. Bloom sources need at least 128; bars, flyers, rain and particles need at least 64. Hover info and the cursor label say only “Unexplored” below 64. Game settings → Fog of war is on by default. Turning it off shows the whole world while exploration continues to be recorded and saved. Browser scenes and performance tools turn it off in their shared setup; dedicated fog checks enable it explicitly.