BeamNG.Earth
BeamNG.drive용 1:1 비율 실시간 지구, 실제 고도·위성 이미지·부동 원점·보조 서버에서 LOD 스트리밍
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Simulador ferroviario 3D del Metro de Santiago: líneas 1, 2, 3, 4, 4A, 5 y 6 para navegador, hecho con HTML, CSS, JavaScript y Three.js. Conductor y pasajero comparten el mismo mundo: los mismos trenes, señales, horarios y viajeros. Los módulos ES necesitan un servidor local (no funciona abriendo index.html con doble clic). • VS Code: extensión Live Server → clic derecho en index.html → Open with Live Server. • Node: npx serve . y abrir la dirección que indique. Three.js se carga desde CDN, así que la primera vez hace falta conexión a internet.README 전문 보기 ↗
Simulador ferroviario 3D del Metro de Santiago: líneas 1, 2, 3, 4, 4A, 5 y 6 para navegador, hecho con HTML, CSS, JavaScript y Three.js.
Conductor y pasajero comparten el mismo mundo: los mismos trenes, señales, horarios y viajeros.
Los módulos ES necesitan un servidor local (no funciona abriendo index.html con doble clic).
index.html → Open with Live Server.npx serve . y abrir la dirección que indique.Three.js se carga desde CDN, así que la primera vez hace falta conexión a internet.
dist/MetroSim.apk instala el juego como app de Android (funciona sin internet). Se reconstruye con
python3 android/build/build.py; detalles en android/LEEME.md.
MetroSim es instalable: en la pantalla inicial aparece 📲 Instalar MetroSim (Chrome, Edge, Android). En iPhone/iPad:
Compartir → Agregar a inicio. Se abre a pantalla completa y, tras la primera partida con internet, funciona sin conexión
(el service worker sw.js guarda el juego, Three.js y las voces). La instalación necesita https o localhost.
Los íconos están en icons/ (los PNG se generan desde icons/icon.svg).
js/engine/fleet.js): las líneas 1, 2 y 5 usan trenes de neumáticos de Alstom
(NS-74, NS-93, NS-2007, NS-2016) y las 3, 4, 4A y 6, de rueda de acero (AS-2002 de Alstom, AS-2014 de CAF).
Cada línea tiene su mezcla de modelos y a cada servicio le toca uno (la L5 conserva casi la mitad de su flota de
NS-74, de 1975). Cambia la física: el neumático agarra mucho más (arranca y frena fuerte) pero rueda con más
resistencia; los trenes antiguos aceleran menos, el NS-74 frena con resistencias (sin freno regenerativo) y
ninguno de neumáticos tiene pantógrafo: toman 750 V de las barras guía que se ven a los costados de la vía,
junto a las pistas de rodadura. Al empezar a conducir te dice qué tren te tocó y la DMI lo muestra.js/engine/sections.js, js/render/outdoor.js): la L4 corre en viaducto sobre
Vicuña Mackenna y en trinchera por Américo Vespucio, la L4A en trinchera por Vespucio Sur, la L5 en los viaductos
de Pudahuel-Maipú y de Vicuña Mackenna y la L2 en trinchera junto a la autopista Central (tramos aproximados).
Al aire libre se ve el cielo según la hora, la avenida con autos, veredas, árboles, faroles y edificios (con
ventanas encendidas de noche), pilas con capitel bajo el viaducto, muros y puntales en la trinchera, pórticos de
catenaria y portales de túnel. Las estaciones al aire libre tienen el andén abierto con mamparas de vidrio y
cubierta liviana. El perfil cambia: en viaducto la vía va ~9 m sobre la calle y en trinchera ~7 m bajo ella.js/engine/weather.js): por defecto, el tiempo real (se consulta a Open-Meteo, un
servicio público sin clave; sin conexión, uno típico de la temporada: en Santiago llueve casi solo de mayo a
agosto). También se puede elegir en la portada: despejado, nublado, lluvia o temporal. Con lluvia, en los tramos
al aire libre el riel mojado agarra mucho menos: el tren patina al arrancar y desliza al frenar (la DMI
avisa y el antipatinaje recorta el esfuerzo), así que hay que frenar antes. Además viaja más gente (y con frío,
algo más). Se ve la lluvia (también en la calle del pasajero), el cielo gris y se oye.js/engine/express.js): en la L2, la L4 y la L5, los días laborales de 06:00 a 09:00 y de
18:00 a 21:00 los trenes alternan ruta roja y ruta verde y se saltan las estaciones del otro color
(las comunes las sirven todos). Colores de 2023. El horario de cada servicio se calcula con la marcha sin
parar por las saltadas, en las estaciones de un color pasa un tren cada dos y los letreros de las estaciones
muestran su color. El conductor ve "PRÓXIMA PARADA · RUTA VERDE" y qué estaciones pasa sin detenerse (abrir
puertas en una que no le toca es falta); las pantallas del andén marcan el color de cada tren y el pasajero
recibe el aviso al llegar. Mientras funciona, la regulación no retiene a los trenes expresos (sus intervalos
son desiguales por diseño): se rigen por su horario.Siguen siendo simplificaciones: todos los trenes se dibujan con la composición de 5 coches y ~120 m del AS-2014 (para que andenes, puertas y viajeros funcionen igual) y la calle del modo pasajero queda sobre su estación aunque esta vaya en viaducto.
js/roles/driverSafety.js (vigilancia, ATP y PCC, personal en la vía); el bloqueo de tracción y la marcha
a la vista viven en la simulación del tren (js/engine/sim.js).js/render/carInfoPanel.js): próxima estación y combinaciones, estación actual,
"CIERRE DE PUERTAS" parpadeando, la hora y la dirección. Las del lado del andén avisan "SE ABRIRÁN LAS PUERTAS DE
ESTE LADO". Avisan también si el tren está detenido o si se retira del servicio. El plano luminoso de la línea sigue
marcando la próxima estación.carShares / carLoads en js/engine/passengers.js): van más llenos los coches que
quedan junto a la escalera del andén y más vacíos los del otro extremo. Los asientos y el "no cabes" se cuentan por
coche: si el de tu puerta va repleto, prueba otra puerta. El HUD muestra cuántas personas van en tu coche
(holgado, cómodo, lleno, apretado, repleto).js/engine/incidents.js): un tren puede detenerse en plena vía por regulación de
frecuencia, por un tren detenido más adelante o por inspección de vía. A los pocos segundos lo anuncia la megafonía
("Estimados pasajeros, nuestro tren se encuentra detenido…") y al seguir: "Reanudamos la marcha". Si un tren queda
detenido sin motivo informado (una señal en rojo), también hay aviso. El HUD muestra el retraso respecto del horario.js/render/trackLift.js): el túnel baja y sube entre
estaciones, cada estación queda a su altura y los trenes se doblan siguiendo la vía coche a coche. La lógica
del juego sigue en un mundo plano; lo que se dobla es el dibujo, en la tarjeta gráfica, con una textura de
cotas de la línea (una muestra cada 2 m), así que casi no cuesta rendimiento. En la cabina y a bordo la cámara
cabecea con el tren al entrar en una rampa. La calle no se dobla: queda horizontal a la altura de su estación.js/engine/profile.js) con el terreno de Santiago subiendo
hacia la cordillera, estaciones a nivel, trazado en "diente de sierra" entre estaciones (máx. 35 ‰) y túnel más
hondo bajo el río Mapocho. La pendiente se siente en la física y se ve en la DMI.Los datos oficiales usados son los del AS-2014 (5 coches, 120 m, 1.299 personas, 80 km/h), la longitud de la L3 y el horario de funcionamiento; masas, esfuerzos, potencias, demanda e intervalos son valores aproximados coherentes con un metro moderno de este tamaño.
js/city/catalog.js.Puntaje del conductor: cada estación suma puntos por precisión de parada, puntualidad y confort (sin tirones ni paradas bruscas). Las estaciones perfectas seguidas forman una racha (hasta ×2). Las faltas restan. Al final del servicio, nota S/A/B/C/D y récord guardado por línea y sentido.
Incidentes aleatorios: puertas obstruidas (se reabren y hay que volver a cerrar), limitaciones temporales de velocidad por trabajos o inspección de vía y fallas de señal (queda en rojo un tiempo). Afectan a todos los trenes, avisan al conductor y al viajero, y quedan en el registro del Centro de Control.
Elige tu línea en la pantalla principal (conductor y pasajero): L1, L2, L3, L4, L4A, L5 o L6, cada una con su mundo 3D, sus estaciones reales en orden, sus combinaciones, su color y sus carteles. El resto de la red sigue funcionando a la vez (sin dibujo) y se conecta por las combinaciones. Las distancias son aproximadas y, por simplicidad, todas las líneas se representan subterráneas.
Las 21 estaciones reales de la L3 (Plaza Quilicura ⇄ Fernando Castillo Velasco) con sus combinaciones.
Doble vía con trenes automáticos en ambos sentidos según horario.
Trenes AS-2014 de 5 coches con intercirculación, pantógrafos y catenaria rígida.
Señalización de bloqueo automático de 3 aspectos y protección por rebase de señal en rojo.
Estaciones con andenes laterales, escaleras, mezanina con torniquetes (tarjeta bip!), boletería y salida a la calle.
Viajeros que entran desde la calle, validan, esperan en su andén, suben, viajan y bajan.
Escaleras mecánicas de subida junto a las escaleras fijas.
Tarjeta bip! con saldo persistente: el torniquete cobra según el tramo horario (punta, valle, baja); carga en la boletería (con cajero y fila) o en los tótems de autoservicio.
Maniobra de retorno en las terminales: cola de maniobras, cambio de cabina y cambio de vía (jugador y trenes automáticos).
Sonido procedural, anuncios de estación con voz y megafonía de andén.
Hora local real: la partida empieza a la hora de tu computador y el reloj se mantiene sincronizado.
Pantallas de próximo tren en tres puntos de cada andén y plano de línea dinámico en los coches (luz parpadeante en la estación actual o la próxima).
Bancos en los andenes para esperar sentado; nadie atraviesa columnas, bancos ni a otros viajeros.
En las terminales, el andén de llegada es solo de salida.
Las tarifas son valores de referencia configurables en
js/config.js(FARES); revísalos si quieres que coincidan con las vigentes.
Acceso completo y gratis para el creador del juego: toda la Tienda Metro desbloqueada (licencias, libreas, contratos, depto con muebles y recuerdos) y compras, pasajes y cargas sin costo. Tu saldo y lo que compraste de verdad no se tocan.
node tools/clave-creador.mjs "una frase larga y secreta"?creador al final de la dirección y escribe la clave. Queda activo en ese navegador.?creador=off.Conductor
| Tecla | Acción |
|---|---|
| W / ↑ · S / ↓ | Subir / bajar mando (P4 … B3, EM) |
| Espacio | Freno de emergencia |
| Q · E | Inversor adelante / atrás |
| D | Abrir / cerrar puertas |
| B | Bocina (obligatoria al pasar junto al personal en la vía) |
| X | Confirmar la vigilancia (hombre muerto; mover el mando también cuenta) |
| V · C | Vista exterior · centrar vista |
| T | Cambio de cabina (en el cartel FIN DE MANIOBRA) |
| R | Reiniciar servicio |
| F | Finalizar turno antes de la terminal (pulsa dos veces; muestra el resumen) |
Pasajero a pie
| Tecla | Acción |
|---|---|
| W / ↑ · S / ↓ | Caminar hacia adelante · retroceder despacio (Shift: correr) |
| A / ← · D / → | Girar |
| Re Pág · Av Pág | Mirar arriba / abajo (al caminar la vista vuelve sola al frente) |
| F | Sentarse / levantarse (en el tren o en un banco del andén) |
| G | Agarrarse de una barra / soltarse (a bordo, de pie) |
| E | Boletería, tótem, salida a la calle · en la calle: entrar a un local, bajar al Metro o sacar una foto del hito |
| J | Misiones |
Ambos: M sonido · H ayuda.
Celular o tablet: aparecen controles táctiles (mejor con el teléfono en horizontal; en Android el juego pasa a
pantalla completa y horizontal al empezar). Los controles son mínimos: lo que sirve en un momento puntual aparece solo
entonces y lo poco usado va en el menú ☰ (arriba a la derecha). Conductor: indicador de mando e inversor (tocar la letra
F / N / R cambia el inversor), ▲ / ▼ mando y EMERGENCIA abajo a la izquierda; 🚪 Puertas abajo a la derecha; ✋ Vigilancia
solo cuando suena la alarma de hombre muerto y ⇄ Cambiar cabina solo detenido en FIN DE MANIOBRA; en ☰ Bocina, Vista,
Tienda y Finalizar turno; arrastra la pantalla para mirar. Pasajero: joystick abajo a la izquierda para caminar (al
borde corre), arrastra a la derecha para mirar, 🎯 Misiones siempre y ✋ Usar, 🪑 Sentarse y 🤚 Agarrarse solo donde se
puede; en ☰ Tienda y Menú principal. El HUD se compacta en pantallas chicas y respeta la muesca del teléfono; en el
Centro de Control los esquemas se desplazan de lado y la ficha del tren aparece como hoja inferior.
Para probarlos en el computador, abre la página con ?touch=1 al final de la dirección.
MetroSim separa el motor (el "cerebro" del Metro) del render (lo que se ve).
El motor simula toda la red (7 líneas) con un único reloj. La línea que eliges se construye en 3D; las demás se simulan sin dibujo. Se conectan en sus combinaciones (Universidad de Chile, Baquedano, Los Héroes, Tobalaba, Ñuñoa…): parte de la gente que baja de una línea sigue viaje por otra, así que un problema en una se nota en las demás. En una estación de combinación, el HUD del pasajero muestra los próximos trenes de las otras líneas.
ENTRADA DEL JUGADOR → MOTOR METROSIM → ESTADO DE LA RED → RENDER 3D / INTERFAZ / AUDIO
El motor (js/engine/) no usa Three.js ni el navegador: los trenes circulan con su propio reloj de paso fijo,
los mire el jugador o no. Cada tren tiene un estado explícito (arrancando, circulando, aproximándose,
puertas abiertas, listo para salir, detenido ante señal...) y las pantallas de "próximo tren" se calculan desde
la posición real de cada tren, no solo desde el horario. El juego escucha al motor por su bus de eventos
(train:created, train:removed, train:event, train:state...).
Los roles no tocan la simulación: mandan órdenes al buzón del motor y este decide si se pueden cumplir.
El Conductor convierte sus teclas en órdenes (driver.notchUp, driver.doors...). Desde la consola del
navegador se puede probar el futuro Centro de Control:
MetroSim.game.engine.command("control.hold", { trainId: "L3-1405" }) // retener un tren en su próxima estación
MetroSim.game.engine.command("control.release", { trainId: "L3-1405" }) // liberarlo
Al retener un tren, el siguiente se queda detenido ante la señal en rojo: causa y efecto.
Los pasajeros también son cifras reales del motor: llega gente a cada andén según la hora y la estación (las de combinación mueven más), en cada parada primero bajan y luego suben a un ritmo limitado por las puertas, y el tren no cierra mientras haya intercambio. Un tren atrasado encuentra más gente, tarda más y se atrasa más; el de atrás va más vacío (trenes en racimo). Los viajeros dibujados son solo una muestra de esas cifras.
La regulación de intervalos lo corrige como un Puesto de Mando: retiene unos segundos en la estación al tren
que va demasiado pegado al de delante (respetando la proporción del horario) y acorta la parada del que va con
mucho hueco. Tras retener un tren 5 min en punta, el intervalo mínimo en Universidad de Chile pasa de 86 s sin
regulación a 170 s con ella. Se puede apagar desde la consola (engine.command("control.regulation", { on: false }))
o en la simulación sin gráficos con node tools/simular.mjs 10:00 15 "UNIVERSIDAD DE CHILE" sin-regulacion.
Se puede ejecutar sin gráficos:
node tools/simular.mjs # 08:00 → 10:00, informe cada 15 min
node tools/simular.mjs 09:30 5 # hasta las 09:30, informe cada 5 min
node tools/simular.mjs 09:00 10 "ÑUÑOA" # pantallas de andén de otra estación (L3 y L6)
(Requiere Node 22 o superior.)
index.html pantallas y HUD
styles.css estilos
manifest.webmanifest manifiesto de la app instalable (PWA)
sw.js service worker: instalación y juego sin conexión
icons/ íconos de la app (icon.svg y PNG generados)
js/engine/ MOTOR (sin Three.js)
engine.js MetroEngine: red de líneas con un reloj común; informe de estado
network.js las 7 líneas de la red (estaciones reales) y combinaciones
clock.js reloj de paso fijo
route.js los dos sentidos de circulación
schedule.js horarios
signals.js lógica de señalización de bloqueo automático
sim.js física del tren y conducción automática
traffic.js todos los trenes de la línea, maniobras y retrasos
consist.js composición del AS-2014 (5 coches, 20 puertas por lado) y sus datos físicos
fleet.js flota real de cada línea: modelos de neumáticos y de acero y su física
sections.js tramos en túnel, trinchera o viaducto
weather.js clima: lluvia (adherencia al aire libre) y demanda
express.js Ruta Expresa (rutas roja y verde) de las líneas 2, 4 y 5
profile.js perfil longitudinal: cotas y pendientes de cada línea
state.js estado explícito de cada tren
eta.js llegadas estimadas desde la posición real
commands.js buzón de órdenes (roles → motor)
passengers.js pasajeros lógicos: demanda, subidas y bajadas
regulation.js regulación de intervalos (retener / apurar trenes)
events.js bus de eventos del motor
format.js utilidades puras
js/render/ dibujo del estado del motor
trainViews.js trenes
signalViews.js señales
lineMapPanel.js plano de línea dinámico de los coches
carInfoPanel.js pantallas de información sobre las puertas de los coches
trackLift.js pendientes en 3D: dobla el dibujo de la vía según el perfil de la línea
outdoor.js al aire libre: viaductos, trincheras, la avenida y los edificios, cielo y lluvia
js/control/ Centro de Control
controlCenter.js esquema de la red, ficha de tren, incidencias y órdenes
js/touch.js controles táctiles (celular y tablet)
js/roles/ roles del jugador
driverRole.js Conductor: teclado → órdenes
driverSafety.js Conductor: vigilancia (hombre muerto), ATP y PCC por radio, personal en la vía
js/stationLayout.js columnas, bancos y pantallas de los andenes (compartido)
js/main.js punto de entrada: une motor, render, roles, interfaz y audio
js/config.js línea, estaciones, geometría, mando, tarifas, demanda
js/world.js túnel, vías, catenaria y estaciones con mezanina
js/train.js modelo 3D del tren de 5 coches y cabina
js/dmi.js pantalla de cabina
js/people.js viajeros (NPC) instanciados
js/walker.js pasajero a pie
js/audio.js sonido procedural y megafonía
js/announcements.js frases reales de megafonía del Metro de Santiago
js/camera.js vistas del conductor
js/hud.js interfaz (incluye boletería y tótem)
js/card.js tarjeta bip! del jugador
js/economy.js cuenta bancaria (débito), sueldo del conductor y bono de servicio
js/missions.js misiones del pasajero (sin Three.js)
js/tutorial.js tutorial interactivo del jugador nuevo (conductor y pasajero)
js/city/ la calle de cada estación
plan.js locales de cada estación y lo que venden (sin Three.js)
catalog.js hitos de las estaciones (sin Three.js)
landmarks.js modelos procedurales de los hitos
kit.js piezas de ciudad: fachadas, árboles, faroles, letreros
city.js la calle 3D: avenida, autos, peatones, locales, cielo
js/intro.js introducción de bienvenida
js/pwa.js registro del service worker y botón "Instalar MetroSim"
js/creator.js Modo Creador (todo desbloqueado y gratis, con clave)
js/utils.js utilidades y texturas procedurales
tools/simular.mjs ejecuta el motor sin navegador
Las distancias entre estaciones son aproximadas; los nombres, el orden y las combinaciones son los reales.
node tools/simular.mjs 10:00 15 "VICENTE VALDÉS" con-regulacion laboral lluvia simula también con lluvia.node tools/simular.mjs 09:00 15 "ÑUÑOA" "" sabado simula también sábados y domingos.