Goal: Build a local browser app (WebGPU). Left panel shows reference.png (a Mars surface photo taken ~100m above ground). Right panel is a free-fly 3D render of a 100mΓ100m tile that is geologically consistent with the reference β a newly synthesized tile in the same morphology and style, not a pixel-for-pixel reconstruction of the same patch. It should be nearly photorealistic, comparable in realism to the reference; matching it pixel-by-pixel is not a goal.
Generality is the core constraint. The pipeline must infer what it needs from the reference and synthesize from that. Pointing it at a different reference image must change the output appropriately β geometry, materials, and scatter. No Mars-specific or photo-specific hardcoded constants, no magic numbers that only work for this image. If something is baked to this photo, it's wrong.
Geology engine: From the reference, infer the dominant process(es) β e.g. aeolian dunes/ripples, impact/ejecta fields, layered/sedimentary, fluvial, talus β and the statisti