1. math (Precisión Escalar): Aunque Numpy hace el trabajo pesado, usaremos math para cálculos escalares puros y normativos. En el código, lo usarás para convertir la pendiente longitudinal (ingresada en porcentaje) a grados sexagesimales exactos, un dato geométrico obligatorio que el fiscalizador exigirá en la memoria de cálculo.

2. streamlit (Interfaz Web): Es el cascarón interactivo y el "Gerente de Proyecto". Te ahorrará aprender diseño web o HTML. Convertirá tu script de Python en una aplicación profesional con botones, columnas, pestañas y deslizadores, permitiendo que cualquier cliente (o tu profesor) opere el simulador sin ver una sola línea de código.

3. pandas (Ingesta Masiva y Auditoría): Tiene una doble misión vital. Al inicio, leerá el pesado archivo topográfico (CSV) y lo estructurará instantáneamente en una tabla inteligente. Al final, se conectará a la base de datos para extraer tu historial de modelos guardados y mostrártelos como una tabla estilo Excel directamente en la página web.

4. numpy (Vectorización): Es tu motor de cálculo estructural. Hará las restas vectoriales masivas entre la Rasante de Diseño y el Terreno Natural para hallar los volúmenes exactos de corte y relleno en una fracción de segundo, evitando que tu computadora se congele usando los lentos bucles tradicionales.

5. scipy (Algoritmia Espacial): La ingeniería de alto nivel detrás del software comercial. Usarás cKDTree para encontrar qué puntos topográficos caen exactamente dentro del ancho de tu vía, griddata para rellenar los huecos del terreno, y gaussian_filter1d para transformar líneas rectas en un eje vial curvo, suave y orgánico.

6. plotly (Maqueta 3D Interactiva): El lienzo comercial. Renderiza el modelo 3D para que tú y tu cliente puedan rotar la zanja, hacer zoom y entender espacialmente dónde se concentra la excavación. (💡 Nota de campo: Usarás el botón de pantalla completa de este gráfico para auditar el modelo visualmente de cerca).

7. matplotlib (El Estudio Fotográfico y Planimetría): Es el dibujante técnico oficial. Primero, dibujará el clásico Perfil Longitudinal 2D normativo (Abscisa vs. Elevación). Segundo, actuará como tu "estudio fotográfico": tomará los ángulos de cámara que tú elijas y renderizará vistas 3D de la maqueta a 300 DPI (alta resolución) para garantizar que tu informe no se pixele al imprimirlo.

8. sqlite3 (Memoria de Obra): Cura la "amnesia" de las páginas web. Cada vez que logres un diseño exitoso, esta librería guardará silenciosamente todos tus parámetros (cota inicial, pendiente, ancho) y volúmenes en una base de datos local (archivo .db). Esto te permite crear un historial y nunca perder la "receta" exacta de tu mejor modelo.

9. fpdf (El Entregable Legal): El cheque al portador. Un botón final toma todos tus textos, variables calculadas, y las imágenes de altísima calidad generadas por Matplotlib, ensamblándolas dinámicamente en una Memoria de Cálculo PDF formal, inalterable y lista para que le pongas tu firma y sello.


💡 NOTA CLAVE PARA EL ESTUDIANTE (El truco del Ingeniero para el PDF):

Para que tu Memoria de Cálculo final tenga un aspecto verdaderamente profesional, usa el botón genérico de descarga de la cámara de Plotly (esquina superior derecha).

Haz lo siguiente: Pasa el mouse sobre el gráfico 3D y haz clic en el ícono de "Pantalla Completa" (las flechas que se expanden). Una vez que la maqueta ocupe todo tu monitor, rótala hasta obtener el ángulo que demuestre el corte o relleno crítico. En ese momento, presiona la cámara y guarda la foto que la subirás al momento de crear el informe en pdf.