An interactive 3D physics simulator for visualizing electric charges and electromagnetic fields
Vectorial es un simulador educativo interactivo de física electromagnética desarrollado en Unity. Permite visualizar y experimentar con cargas eléctricas, campos eléctricos, fuerzas y vectores en tiempo real en un entorno 3D intuitivo.
Este proyecto fue desarrollado como parte de un proyecto universitario con el objetivo de:
- 📚 Facilitar el aprendizaje de física electromagnética
- 🔬 Visualizar conceptos abstractos de forma interactiva
- 🎮 Gamificar el aprendizaje de ciencias
- 🧪 Permitir experimentación sin riesgos
- 🔴 Cargas Positivas y Negativas - Crea y posiciona múltiples cargas
- 🧲 Fuerzas Electromagnéticas - Calcula fuerzas de Coulomb en tiempo real
- 📊 Campos Vectoriales - Visualización de campos eléctricos
- 📐 Líneas de Campo - Representación visual de líneas equipotenciales
- ⚙️ Física Realista - Simulación basada en leyes de electromagnetismo
- 🖱️ Manipulación Directa - Arrastra y posiciona cargas libremente
- 🎚️ Control de Parámetros - Ajusta magnitud de cargas
- 📹 Cámara 3D - Explora el espacio desde cualquier ángulo
- ⏸️ Pausa y Reset - Control total de la simulación
- 📈 Datos en Tiempo Real - Visualiza valores de fuerza y distancia
- 📝 Guías Interactivas - Tutoriales paso a paso
- 🧮 Fórmulas Visibles - Ecuaciones de física aplicadas
- 📊 Gráficos y Datos - Análisis cuantitativo
- 💾 Guardar Escenarios - Guarda configuraciones para estudio
| Concepto | Implementación |
|---|---|
| Ley de Coulomb | F = k · (q₁ · q₂) / r² |
| Campo Eléctrico | E = F / q |
| Superposición | Campo total = Σ campos individuales |
| Energía Potencial | U = k · (q₁ · q₂) / r |
✅ Cálculo vectorial 3D
✅ Álgebra lineal
✅ Trigonometría
✅ Física computacional
✅ Métodos numéricos
| Acción | Control |
|---|---|
| Rotar Cámara | Click Derecho + Arrastrar |
| Mover Carga | Click Izquierdo + Arrastrar |
| Zoom | Rueda del Ratón |
| Seleccionar | Click Izquierdo |
| Tecla | Función |
|---|---|
| Espacio | Pausar/Reanudar |
| R | Reset Simulación |
| +/- | Aumentar/Disminuir Carga |
| Delete | Eliminar Carga Seleccionada |
| Tab | Cambiar Modo de Visualización |
🎮 Unity 2022+ // Motor de juego
💻 C# // Lenguaje de programación
🔢 Unity Physics // Sistema de física
📊 Unity UI // Interfaz de usuario
🎨 Shader Graph // Visualización de campos- TextMesh Pro - Texto de alta calidad
- ProBuilder - Modelado 3D en Unity
- Cinemachine - Sistema de cámaras
- Custom Physics Engine - Cálculos electromagnéticos
📁 Vectorial-Simulador-de-Cargas-Electricas/
├── 📂 Assets/
│ ├── 🎨 Materials/ # Materiales visuales
│ ├── 🎬 Prefabs/ # Prefabs de cargas y campos
│ ├── 📜 Scripts/ # Scripts de física y UI
│ │ ├── ChargeController.cs # Control de cargas
│ │ ├── ElectricField.cs # Cálculo de campos
│ │ ├── ForceCalculator.cs # Ley de Coulomb
│ │ └── UIManager.cs # Interfaz de usuario
│ ├── 🌅 Scenes/ # Escenas de Unity
│ └── 🔊 Audio/ # Efectos de sonido
│
├── 📦 Vectorial_Release.7z # Build ejecutable
├── 📜 LICENSE # Licencia MIT
└── 📄 README.md # Este archivo
-
Descarga el simulador:
https://github.com/miventech/Vectorial-Simulador-de-Cargas-Electricas/blob/main/Vectorial_Release.7z -
Extrae el archivo
.7zusando 7-Zip o WinRAR -
Ejecuta
Vectorial. exe -
**¡Empieza a experimentar! **
- Unity 2022.3 LTS o superior
- Git
- 4GB de RAM mínimo
- Clonar el repositorio
git clone https://github.com/miventech/Vectorial-Simulador-de-Cargas-Electricas. git
cd Vectorial-Simulador-de-Cargas-Electricas- Abrir en Unity Hub
Unity Hub → Add → Selecciona la carpeta clonada
- Abrir escena principal
Assets/Scenes/MainSimulation.unity
- Presiona Play
▶️
-
Crear una carga:
- Click derecho en el espacio → "Nueva Carga"
- Selecciona positiva (+) o negativa (-)
-
Posicionar cargas:
- Arrastra las cargas con el ratón
- Usa las flechas del teclado para ajuste fino
-
Observar interacciones:
- Las flechas rojas muestran fuerzas
- Las líneas azules muestran campos eléctricos
-
Modificar parámetros:
- Panel lateral → Ajusta magnitud de carga
- Cambia constante de Coulomb (k)
📖 Experimento 1: Ley de Coulomb
Objetivo: Verificar la relación inversa del cuadrado de la distancia
- Coloca 2 cargas iguales a distancia
d - Anota la fuerza
F1 - Duplica la distancia a
2d - Anota la fuerza
F2 - Verifica que
F2 ≈ F1/4
📖 Experimento 2: Superposición de Campos
Objetivo: Observar el principio de superposición
- Coloca 3 cargas en triángulo equilátero
- Añade una carga de prueba en el centro
- Observa cómo los vectores se suman
- Cambia signos y magnitudes
📖 Experimento 3: Líneas de Campo
Objetivo: Visualizar configuraciones clásicas
- Dipolo: 1 carga + y 1 carga -
- Cuadrupolo: 4 cargas alternadas
- Placa: Múltiples cargas en línea
📸 Añade capturas de pantalla aquí cuando estén disponibles
[Screenshot 1: Interfaz principal]
[Screenshot 2: Simulación de dipolo]
[Screenshot 3: Visualización de campos]
[Screenshot 4: Panel de controles]
| Campo | Detalles |
|---|---|
| Institución | UPTA |
| Curso | ING - Electronica Mencion Telecomunicaciones |
| Semestre | [3er-Año |
| Autor | Miventech (Jose Jaspe) |
| Profesor/Tutor | Andres Castillo |
- ✅ Comprensión de la Ley de Coulomb
- ✅ Visualización de campos vectoriales
- ✅ Aplicación de física computacional
- ✅ Desarrollo de software educativo
- ✅ Programación orientada a objetos
- ✅ Integración de matemáticas y física
F = k × (|q₁ × q₂|) / r²
Donde:
F = Fuerza electromagnética (Newtons)
k = Constante de Coulomb (8.99 × 10⁹ N·m²/C²)
q₁, q₂ = Cargas eléctricas (Coulombs)
r = Distancia entre cargas (metros)
E = k × q / r²
Donde:
E = Intensidad del campo eléctrico (N/C)
q = Carga fuente (Coulombs)
r = Distancia al punto (metros)
U = k × (q₁ × q₂) / r
Donde:
U = Energía potencial eléctrica (Joules)
// Ejemplo de estructura de código
public class Charge : MonoBehaviour
{
public float magnitude; // Magnitud de la carga (C)
public bool isPositive; // Signo de la carga
public Vector3 CalculateForce(Charge other)
{
// Implementación de Ley de Coulomb
float k = 8.99e9f;
Vector3 direction = other.transform.position - transform.position;
float distance = direction.magnitude;
float forceMagnitude = k * magnitude * other.magnitude / (distance * distance);
return direction.normalized * forceMagnitude;
}
}- 🏗️ Singleton - Gestor de simulación
- 🏭 Factory - Creación de cargas
- 👀 Observer - Actualización de UI
- 📋 Command - Sistema de deshacer/rehacer
- Simulación básica de cargas
- Visualización de fuerzas
- Interfaz de usuario
- Controles de cámara
- Sistema de pausa/reset
- Partículas para campos eléctricos
- Mejores shaders para cargas
- Animaciones de transición
- Temas claro/oscuro
- Conductores y dieléctricos
- Capacitores
- Corrientes eléctricas
- Magnetismo
- Modo VR
- Simulaciones pregrabadas
- Sistema de niveles/desafíos
- Exportar datos a CSV
- Integración con notebooks de Python
¡Las contribuciones son bienvenidas! Si tienes ideas para mejorar el simulador:
- Fork el proyecto
- Crea una rama (
git checkout -b feature/MejorCaracteristica) - Commit tus cambios (
git commit -m 'Añadir característica') - Push a la rama (
git push origin feature/MejorCaracteristica) - Abre un Pull Request
Si encuentras un bug, por favor abre un issue con:
- Descripción del problema
- Pasos para reproducir
- Screenshots si es posible
- Información del sistema (OS, versión de Unity)
- Griffiths, D. J. - Introduction to Electrodynamics
- Purcell, E. M. - Electricity and Magnetism
- Feynman, R. P. - The Feynman Lectures on Physics Vol. II
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.
MIT License - Libre para usar, modificar y distribuir
Miventech (Jose Jaspe)
Unity Developer & Physics Enthusiast
- 🎓 Profesores y tutores por el apoyo académico
- 👥 Compañeros de clase por feedback y pruebas
- 🌐 Comunidad de Unity por tutoriales y recursos
- 📚 PhET Colorado por inspiración en simuladores educativos
- ☕ Café por mantenerme despierto durante el desarrollo
¿Tienes preguntas o necesitas ayuda?
- 📧 Email: [Tu email si quieres compartirlo]
- 💬 Discord: [Tu Discord si tienes]
- 🐛 Issues: Abrir Issue
- 💡 Discussions: GitHub Discussions
| ⚡ Física Realista | 🎮 Interactivo | 📚 Educativo | |:-----------------:|:-------------:|: ------------:| | Cálculos precisos basados en leyes físicas | Manipulación directa de cargas | Perfecto para aprender | | 🎨 Visual | 💾 Portable | 🆓 Gratis | | Gráficos 3D inmersivos | No requiere instalación | Open source y gratuito |