Motor de física 2D totalmente tipado para TypeScript y JavaScript — reescritura moderna de Nape
Cuerpos rígidos • Círculos, polígonos y cápsulas • Restricciones • Simulación de fluidos • Callbacks de colisión • Raycasting y consultas espaciales • Fractura • Cuerpo blando mediante restricciones • Multijugador determinista • Serialización • Compatible con Web Worker: sin dependencias, ~195 KB gzip.
npm install @newkrok/nape-js
Haz clic o arrastra sobre el lienzo para interactuar. Elige una demo abajo. Física Juego
Juegos publicados que funcionan con la física de nape-js: pruébalos en el navegador o consigue la versión nativa.
Life of a Fish
Una inmersión submarina pixelada: nada, esquiva y avanza por cuevas, con jefes de varias fases y un descenso diario.
loaf.newkrok.com →
MX Dash
Arcade de motocross en vista lateral: un piloto articulado sobre suspensión real, saltos enormes, mortales y repeticiones de caídas a cámara lenta.
mxdash.newkrok.com →
Dust Kings
Carreras de monster trucks vóxel: circuitos de tierra hechos a mano, carreras rápidas y un desafío diario. Actualmente en beta cerrada.
dustkings.newkrok.com →
¿Has publicado algo con nape-js? Abre un issue y podrá aparecer aquí.
nape-js es uno de los pocos motores de física 2D para JavaScript y TypeScript que incluye dinámica de cuerpos rígidos, uniones (PivotJoint, DistanceJoint, WeldJoint, AngleJoint, MotorJoint, LineJoint, PulleyJoint, SpringJoint), flotabilidad de fluidos, fractura, cuerpos blandos y telas construidos con redes de restricciones, raycasting y barridos convexos, un controlador de personaje integrado, paso determinista para rollback multijugador, serialización binaria, grabación de repeticiones y un puente Web Worker fuera del hilo principal, como un único paquete ESM (~195 KB gzip), con tipos de TypeScript completos y sin dependencias del DOM.
¿Buscas una alternativa a Box2D, Matter.js, Planck.js o Rapier? Ejecuta el benchmark en el navegador para compararlos cara a cara, o entra directo a los ejemplos interactivos — demos de física y mini-juegos jugables (plataformas, MOBA, tower defense, resortera, pinball, shooter cenital).
Los agentes de programación funcionan mejor con una biblioteca que puedan leer, comprobar de tipos y ejecutar de verdad. nape-js ofrece las tres cosas.
Toda la API en un archivo de texto en /llms.txt, más una referencia completa en /llms-full.txt: el estándar emergente para pasar documentación a un modelo. Dale la URL a tu agente en lugar de raspar HTML.
TypeScript escrito a mano en todo el proyecto con strict: true, distribuido como declaraciones generadas. Tu agente obtiene firmas reales y TSDoc al pasar el cursor, así que inventa menos métodos inexistentes.
Cero dependencias del DOM: un agente puede importar el motor, avanzar una simulación y comprobar el resultado en la terminal, sin navegador, sin canvas y sin mocks.
Con space.deterministic = true, las mismas entradas dan la misma salida en la misma plataforma. Una prueba de regresión escrita por un agente sigue en verde por el motivo correcto.
Una guía de antipatrones y una guía de resolución de problemas detallan los fallos que los modelos cometen más a menudo con las API de física.
El recetario está organizado por objetivos —plataformas, ragdoll, fluidos, repeticiones—, que es la forma en la que suele llegar un prompt.
Medido en tu navegador ahora mismo. Cada prueba ejecuta el step() de física en un bucle cerrado e informa la mediana del tiempo por paso.
Presiona el botón para comenzar.