Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OceanVision

Interactive 3D/4D Ocean Data Visualization Platform

Smart India Hackathon — SIH26067

OceanVision is a browser-based platform for exploring multidimensional ocean data through an interactive 3D environment.

The system is designed around:

  • Latitude
  • Longitude
  • Depth
  • Time

It is intended for ocean-data exploration and, progressively, observation-aware model analysis in the INCOIS/Indian Ocean context.

The Problem

Ocean datasets can contain:

  • Temperature
  • Salinity
  • Ocean currents
  • Chlorophyll
  • Model outputs
  • Argo observations
  • Glider observations
  • CTD/BGC observations
  • Other multidimensional measurements

These datasets can exist in different formats and workflows.

OceanVision aims to provide a common browser-based environment where these datasets can be explored and progressively compared.

What We Are Building

MVP:

  • Interactive 3D ocean visualization
  • Temperature
  • Salinity
  • Current vectors/particles
  • Depth navigation
  • Time navigation
  • Time animation
  • Dataset upload/import
  • Local execution
  • Remote server connection

Planned:

  • Model vs observation comparison
  • Difference/error visualization
  • Vertical profiles
  • Argo integration
  • Glider integration

Core Concept

Ocean Data
    |
    +-- Model
    +-- Observations
    +-- Future sensors
    |
    v
Data Adapter
    |
    v
Common Ocean Data Model
    |
    v
Scientific Processing
    |
    v
API
    |
    v
Interactive 3D Browser

Architecture

                         Browser
                            |
                +-----------+-----------+
                |                       |
             React                  Three.js
                |                       |
                +-----------+-----------+
                            |
                       Data Provider
                            |
             +--------------+--------------+
             |                             |
        Local Mode                    Server Mode
             |                             |
          FastAPI                       FastAPI
             |                             |
        Local Data                    Remote Data
             |                             |
             +--------------+--------------+
                            |
                     xarray / NumPy
                            |
                      NetCDF / Zarr

Technology Stack

Layer Technology
UI React
Language TypeScript
3D Three.js
Graphics WebGL
Client state Zustand
Backend FastAPI
Scientific processing Python
Scientific arrays NumPy / xarray
Scientific formats NetCDF / Zarr
Local metadata SQLite
Deployment Docker Compose
Future real-time WebSockets
Optional optimization Web Workers / WASM

Local Mode

Browser
   |
localhost
   |
FastAPI
   |
Local scientific datasets

Local mode is important for SIH demonstrations, offline operation, development, and server-independent workflows.

Server Mode

Browser
   |
 HTTPS
   |
FastAPI server
   |
Scientific data

The same frontend can connect to a remote server.

WebAssembly Strategy

WebAssembly is intentionally not a mandatory subsystem.

It will only be introduced where profiling demonstrates a meaningful performance benefit.

Potential uses:

  • client-side interpolation
  • numerical transforms
  • high-volume filtering
  • specialized calculations
  • CPU-heavy particle calculations

Normal TypeScript/JavaScript is preferred when adequate.

Web Workers may prevent CPU-heavy operations from blocking the UI.

Performance Philosophy

Initial development hardware may include:

  • Intel i5 3rd/4th generation
  • 8 GB RAM
  • NVIDIA GT 710 2 GB
  • approximately 10 Mbps network

Therefore:

  • scientific data is subsetted
  • rendering is GPU-oriented
  • particle counts are bounded
  • repeated requests are cached
  • expensive browser calculations avoid the main thread
  • rendering quality can degrade progressively

Scientific Data

Ocean model datasets can be represented as:

Time × Depth × Latitude × Longitude

For example:

temperature[time][depth][latitude][longitude]

Model–Observation Comparison

A future scientific workflow:

Model
   +
Observation
   |
Location
Depth
Time
   |
Alignment
   |
Interpolation
   |
Model value
   |
Model - Observation

Example:

Model = 25.1 °C
Observation = 24.5 °C

Difference = 0.6 °C

Potential metrics:

Error = Model - Observation
Absolute Error = |Model - Observation|
MAE = mean(|Model - Observation|)
RMSE = sqrt(mean((Model - Observation)^2))

Data Extensibility

NetCDF
Argo
Glider
CSV
Future sensor
     |
     v
Data Adapter
     |
     v
Common Ocean Data Model

Future sources may include:

  • CTD
  • BGC
  • Mooring
  • ADCP
  • HF Radar
  • satellite products
  • ML products

Project Differentiation

Existing systems already provide portions of ocean visualization, 4D exploration, Argo visualization, model visualization, and environmental analysis.

OceanVision therefore does not claim that these individual technologies are inherently new.

The intended differentiation is:

An observation-centric workflow for exploring multidimensional ocean fields and progressively comparing model predictions with real observations across location, depth and time, with an extensible architecture oriented toward the INCOIS/Indian Ocean context.

MVP

Must

  • 3D ocean
  • Temperature
  • Salinity
  • Currents
  • Depth
  • Time
  • Time animation
  • Dataset upload/import
  • Local mode
  • Server connection

Should

  • Model/observation comparison
  • Error visualization
  • Vertical profiles

Later

  • Argo
  • Glider
  • Real-time sync
  • Collaboration
  • Chat
  • Calls
  • Export
  • Cloud scaling

Development Philosophy

Correct
  ↓
Simple
  ↓
Profile
  ↓
Optimize
  ↓
Scale

The project intentionally avoids unnecessary microservices, Kubernetes, Kafka, distributed infrastructure, custom video calling, and premature cloud dependencies.

Repository Structure

oceanvision/
├── frontend/
├── backend/
├── data/
├── tests/
├── docker-compose.yml
├── AGENTS.md
├── SKILL.md
├── plan.md
├── Working.md
├── .cursorrules
└── README.md

Data License

All external datasets must have their licenses and attribution requirements verified before redistribution.

Do not claim ownership of third-party data without evidence.

Disclaimer

OceanVision is a visualization and analysis platform, not a numerical ocean model.

Model outputs and observations must retain source metadata and quality information.

Exploratory comparisons must not be presented as authoritative operational forecasts without appropriate validation and operational integration.

SIH Goal

Explore the ocean in 4D. Connect predictions with observations. Turn complex ocean data into understandable analysis.

About

Interactive 3D/4D ocean data visualization and analysis platform for SIH26067.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors