Este proyecto utiliza la biblioteca Three.js para visualizar datos tridimensionales en un navegador web, permitiendo una comprensión intuitiva y visual de los procesos mineros.
El proyecto carga datos de archivos de texto y visualiza cubos tridimensionales que representan diferentes puntos de datos con propiedades específicas, como posición y color. Además, ofrece diversas funcionalidades de filtrado y personalización.
-
Filtrado por:
- Periodo de extracción
- Ley
- Tipo de roca
- Secciones transversales
-
Selección de Escenarios:
- Los escenarios se deben ubicar en la carpeta
assets
. - Para reconocer estos archivos, deben cambiarse los nombres de los posibles archivos a leer en el archivo
constants.js
dentro de la carpetasrc/utils
en la variableSCENARIOS
.
- Los escenarios se deben ubicar en la carpeta
-
Personalización de Parámetros:
- Rangos Válidos: Editar en la variable
VALID_RANGES
enconstants.js
para definir los tipos de roca. - Periodos de Extracción: Definir en la variable
PERIODS
. - Tipos de Roca: Editar en la variable
ROCK_TYPES
. - Costo de Extracción y Precio del Mineral: Editar en las variables
EXTRACTION_COST_PER_BLOCK
yMINERAL_PRICE
respectivamente.
- Rangos Válidos: Editar en la variable
- Navegador web moderno con soporte para WebGL
- Node.js y npm instalados
- Clona este repositorio en tu máquina local.
- Abre el proyecto en tu editor de código favorito.
- En un terminal, ejecuta:
npm install npx vite
- Abre http://localhost:5173 en tu navegador.
El proyecto permite cargar datos de un archivo de texto y visualizar cubos tridimensionales en función de estos datos. Los usuarios pueden filtrar la visualización según sus necesidades y seleccionar diferentes escenarios para análisis detallados.
src/
├── assets/
│ ├── MinePlan.txt
│ ├── RockTypes.txt
│ ├── Scenario00.txt
│ ├── Scenario01.txt
│ ├── Scenario02.txt
│ ├── Scenario03.txt
│ ├── Scenario04.txt
│ ├── Scenario05.txt
│ ├── Scenario06.txt
│ ├── Scenario07.txt
│ ├── Scenario08.txt
│ └── Scenario09.txt
├── components/
├── context/
├── helpers/
│ ├── loadData.js
│ └── statistics.js
├── hooks/
│ └── useFilter.js
├── utils/
│ ├── constants.js
│ └── routes.js
├── App.css
├── App.jsx
├── index.css
└── main.jsx
-
Cambio de nombres de variables: Utilizar nombres de variables más descriptivos para mejorar la legibilidad y mantenimiento del código.
scenarioData
podría serdataEscenario
.oreley
podría seroreLaw
-
Modularización del código: Dividir funciones largas en funciones más pequeñas y específicas para mejorar la organización y reutilización del código.
-
Mejora de la Interfaz de Usuario:
- Implementar una interfaz de usuario más amigable y visualmente atractiva utilizando frameworks modernos como React o Vue.js.
- Añadir una barra lateral o un menú desplegable para facilitar la selección de escenarios y filtros.
-
Optimización del Rendimiento:
- Implementar técnicas de carga diferida para mejorar el tiempo de carga inicial.
- Utilizar Web Workers para realizar cálculos intensivos en segundo plano sin bloquear la interfaz de usuario.
-
Interacción y Visualización Mejorada:
- Añadir funcionalidades de zoom y panorámica más avanzadas.
- Implementar la capacidad de guardar y cargar configuraciones de visualización personalizadas.
-
Documentación y Pruebas:
- Mejorar la documentación del código para facilitar la comprensión y colaboración.
- Añadir pruebas unitarias y de integración para asegurar la calidad y fiabilidad del código.
-
Soporte Multilingüe:
- Implementar soporte para múltiples idiomas para hacer la aplicación accesible a una audiencia más amplia.
- Three.js: Biblioteca utilizada para la visualización 3D.
- OrbitControls.js: Controles de órbita para la cámara.