Skip to content

Real-time 3D Tsunami visualization tool. Renders scientific data using GPU vertex displacement, procedural terrain generation, and texture arrays for high-performance playback (>30 FPS).

Notifications You must be signed in to change notification settings

RodrigoC-C/ProyecTsu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ProyecTsu: Interactive 3D Tsunami Visualizer

Real-time 3D visualization of tsunami propagation dynamics using procedural generation and GPU-based vertex displacement.

[Demo]

TestProyecTsu.Hecho.con.Clipchamp.mp4
image image

📖 About

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.

✨ Key Features

  • Procedural Terrain Generation: Constructs 3D coastal topography at runtime using TerrainMeshGenerator.cs directly 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).

🏗️ Architecture

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 .raw files into a single GPU Texture Array object.
  • HeightArrayPlayback: Manages the time-stepping of the simulation by slicing through the texture array.

🔧 Installation & Setup

  1. Open the project in Unity 2022.3 LTS (or newer).
  2. Ensure Universal Render Pipeline (URP) is enabled.
  3. Place your processed simulation folder (generated by the Python backend) in the StreamingAssets directory.
  4. Hit Play.

🧪 Validation

Geometric coherence validated against GeoClaw's 2D plots. The visualization accurately represents the "wet/dry" boundary evolution and wave amplitude.

image image

🔗 Backend Repository: Get the Python Data Pipeline here

⚠️ Current Status & Limitations

  • 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.

About

Real-time 3D Tsunami visualization tool. Renders scientific data using GPU vertex displacement, procedural terrain generation, and texture arrays for high-performance playback (>30 FPS).

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published