SeaVector es una plataforma premium de simulación 3D que modela la erosión costera en Cartagena de Indias al año 2050. Utiliza una API completa en Java con Spring Boot y SQLite para resolver ecuaciones de cálculo multivariable y derivadas parciales en tiempo real. Su interfaz futurista en React permite visualizar el avance del mar y vectores de gradiente.
🧠 Proyecto académico para la asignatura Matemáticas III – Corporación Universitaria Rafael Núñez (CURN).
Grupo 4: Jesús Campo – Tema: Erosión costera y proyecto Defensa Costera 2050.
- Modelo matemático \( E(x,y,t) = A \cos(Bx) e^{-Cy} - Dt \)
- Derivadas parciales \(\frac{\partial E}{\partial x}, \frac{\partial E}{\partial y}, \frac{\partial E}{\partial t}\)
- Vector gradiente \(\nabla E\) y dirección de máxima erosión
- Diferencial total y plano tangente
- Base de datos SQLite con coeficientes por sector (Bocagrande, Castillogrande, etc.)
- Visualización 3D interactiva (Three.js) con curvas de nivel
- Modo claro/oscuro y chatbot integrado con preguntas frecuentes
- Página de fundamentación científica con scroll animado (Framer Motion)
| Capa | Tecnologías |
|---|---|
| Backend | Java 25, Spring Boot 3.4.4, Hibernate, SQLite, Maven |
| Frontend | React 18, Three.js, Framer Motion, Tailwind CSS, Lucide Icons, React Router |
| Base datos | SQLite |
| Build | Maven (backend), Create React App (frontend) |
SeaVector/
├── seavector-backend/ # Backend Spring Boot
│ ├── src/main/java/com/seavector/
│ │ ├── controller/ # Endpoints REST
│ │ ├── service/ # Lógica matemática (derivadas, gradiente)
│ │ ├── repository/ # Acceso a SQLite
│ │ ├── model/ # Entidad Sector
│ │ └── dto/ # DataPoint
│ ├── src/main/resources/
│ │ ├── application.properties # Configuración SQLite
│ │ └── erosion.db # Base de datos (creada con init_db.py)
│ └── pom.xml
├── seavector-frontend/ # Frontend React
│ ├── src/
│ │ ├── pages/ # Home.jsx, Documentation.jsx
│ │ ├── components/ # Simulation3D, Navbar, Chatbot
│ │ ├── styles/ # tailwind.css
│ │ └── App.js
│ ├── public/
│ └── package.json
├── .gitignore
└── README.md
- Java 17 o superior (recomendado Java 17 o 25)
- Node.js 18+ y npm
- Maven (opcional, se puede usar el wrapper
mvnw) - Python 3 (solo para inicializar la base de datos)
git clone https://github.com/shift-jesus/SeaVector.git
cd SeaVectorcd seavector-backend
python init_db.pyEsto creará erosion.db con la tabla SECTORES y los 5 barrios de Cartagena.
Desde IntelliJ IDEA (recomendado) o con Maven:
cd seavector-backend
./mvnw spring-boot:run # Linux/macOS
mvnw.cmd spring-boot:run # WindowsEl backend quedará disponible en http://localhost:8080.
cd seavector-frontend
npm install
npm startLa aplicación se abrirá en http://localhost:3000.
| Método | Endpoint | Descripción |
|---|---|---|
| POST | /api/simulation/grid | Devuelve grilla 50×50 de puntos (x,y,z,grad) |
| GET | /api/simulation/gradiente | Gradiente en un punto (Ex, Ey, Et) |
| GET | /api/simulation/tangente | Ecuación del plano tangente en un punto |
| GET | /api/simulation/diferencial | Diferencial total dE para dx, dy, dt |
| GET | /api/simulation/sensibilidad | Derivadas parciales ∂E/∂x, ∂E/∂y, ∂E/∂t |
Ejemplo de uso (POST):
curl -X POST http://localhost:8080/api/simulation/grid \
-H "Content-Type: application/json" \
-d '{"year":2030, "sector":"Bocagrande"}'Puedes agregar aquí imágenes de la simulación 3D y la página de teoría.
La página /documentacion incluye:
- Modelo matemático justificado
- Interpretación del gradiente con ilustración interactiva
- Derivada temporal y proyección a 2050
- Tecnología utilizada (Java, SQLite, React, Three.js)
Se recomienda revisar el miniproyecto completo en Overleaf (enlace interno).
Las contribuciones son bienvenidas. Por favor, abre un issue o un pull request en GitHub.
Este proyecto se distribuye bajo la licencia MIT. Consulta el archivo LICENSE para más detalles.
Desarrollador: Jesús Campo – jcampoy21@campusuninunez.edu.co
Repositorio: https://github.com/shift-jesus/SeaVector
⚓ SeaVector – Simulación avanzada para la defensa costera de Cartagena 2050.