Real-time 3D visualization of tsunami propagation dynamics using procedural generation and GPU-based vertex displacement.
[Demo]
TestProyecTsu.Hecho.con.Clipchamp.mp4
ProyecTsu is a Unity-based visualization tool that renders scientific tsunami data (processed by our Python backend) in an interactive 3D environment. Unlike static flood maps, this tool allows users to navigate the timeline of the event, observing wave propagation and coastal inundation dynamically.
Validated under the eta_init_force_dry benchmark, achieving a 1:1 geometric fidelity with numerical models.
- Procedural Terrain Generation: Constructs 3D coastal topography at runtime using
TerrainMeshGenerator.csdirectly from scientific data. - GPU Optimization: Utilizes Texture2DArrays to pack entire simulation timelines into VRAM, eliminating CPU-GPU transfer bottlenecks during playback.
- Custom Shaders (URP): *
TsunamiDisplace16_Array_URP: Handles vertex displacement and dynamic normal calculation for fluid rendering.TerrainPreview_URP: Renders topography with dynamic contour lines for immediate depth analysis.
- High Performance: Stable >30 FPS playback of heavy scientific simulations on consumer-grade hardware (tested on RTX 3060).
The system follows a strict data-contract architecture defined by manifest.json:
- SceneFolderController: Entry point that orchestrates data loading and scene setup.
- ManifestModel: Deserializes the scientific metadata.
- TextureArrayBuilderRuntime: Converts sequences of
.rawfiles into a single GPU Texture Array object. - HeightArrayPlayback: Manages the time-stepping of the simulation by slicing through the texture array.
- Open the project in Unity 2022.3 LTS (or newer).
- Ensure Universal Render Pipeline (URP) is enabled.
- Place your processed simulation folder (generated by the Python backend) in the
StreamingAssetsdirectory. - Hit Play.
Geometric coherence validated against GeoClaw's 2D plots. The visualization accurately represents the "wet/dry" boundary evolution and wave amplitude.
🔗 Backend Repository: Get the Python Data Pipeline here
- Status: Prototype / Academic Research.
- Timeline UI: The timeline controls are currently in beta.
- Focus: The core visualization pipeline (GeoClaw -> Unity) is fully functional. Future updates will optimize the N5 minute interpolation.
Note: Source code comments and variable names may appear in Spanish as this project originated in a Latin American academic context.