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.
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.
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
Ocean Data
|
+-- Model
+-- Observations
+-- Future sensors
|
v
Data Adapter
|
v
Common Ocean Data Model
|
v
Scientific Processing
|
v
API
|
v
Interactive 3D Browser
Browser
|
+-----------+-----------+
| |
React Three.js
| |
+-----------+-----------+
|
Data Provider
|
+--------------+--------------+
| |
Local Mode Server Mode
| |
FastAPI FastAPI
| |
Local Data Remote Data
| |
+--------------+--------------+
|
xarray / NumPy
|
NetCDF / Zarr
| 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 |
Browser
|
localhost
|
FastAPI
|
Local scientific datasets
Local mode is important for SIH demonstrations, offline operation, development, and server-independent workflows.
Browser
|
HTTPS
|
FastAPI server
|
Scientific data
The same frontend can connect to a remote server.
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.
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
Ocean model datasets can be represented as:
Time × Depth × Latitude × Longitude
For example:
temperature[time][depth][latitude][longitude]
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))
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
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.
- 3D ocean
- Temperature
- Salinity
- Currents
- Depth
- Time
- Time animation
- Dataset upload/import
- Local mode
- Server connection
- Model/observation comparison
- Error visualization
- Vertical profiles
- Argo
- Glider
- Real-time sync
- Collaboration
- Chat
- Calls
- Export
- Cloud scaling
Correct
↓
Simple
↓
Profile
↓
Optimize
↓
Scale
The project intentionally avoids unnecessary microservices, Kubernetes, Kafka, distributed infrastructure, custom video calling, and premature cloud dependencies.
oceanvision/
├── frontend/
├── backend/
├── data/
├── tests/
├── docker-compose.yml
├── AGENTS.md
├── SKILL.md
├── plan.md
├── Working.md
├── .cursorrules
└── README.md
All external datasets must have their licenses and attribution requirements verified before redistribution.
Do not claim ownership of third-party data without evidence.
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.
Explore the ocean in 4D. Connect predictions with observations. Turn complex ocean data into understandable analysis.