nape-js

Vollständig typisierte 2D-Physik-Engine für TypeScript & JavaScript — moderne Neuentwicklung von Nape

Starrkörper • Kreise, Polygone und Kapseln • Constraints • Flüssigkeitssimulation • Kollisions-Callbacks • Raycasting und räumliche Abfragen • Bruch • Soft Body über Constraints • Deterministischer Multiplayer • Serialisierung • Web-Worker-Unterstützung — ohne Abhängigkeiten, ~195 KB gzip.

~195 KB gzip
npm install @newkrok/nape-js

Interaktive Demos

Klicken/Ziehen auf der Leinwand zum Interagieren. Wähle unten eine Demo. Physik Spiel

Engine wird geladen…
FPS: — Bodies: — Step: —
Quellcode

Mit nape-js gebaut

Veröffentlichte Spiele mit nape-js-Physik — im Browser spielen oder die native Version holen.

Etwas mit nape-js veröffentlicht? Eröffne ein Issue — dann landet es hier.

Warum nape-js?

nape-js ist eine der wenigen 2D-Physik-Engines für JavaScript und TypeScript, die Starrkörperdynamik, Gelenke (PivotJoint, DistanceJoint, WeldJoint, AngleJoint, MotorJoint, LineJoint, PulleyJoint, SpringJoint), Flüssigkeitsauftrieb, Bruch, aus Constraint-Netzen gebaute Soft-Body- und Stoffsimulation, Raycasting und konvexe Sweeps, einen eingebauten Character Controller, deterministisches Stepping für Multiplayer-Rollback, binäre Serialisierung, Replay-Aufzeichnung und eine Web-Worker-Brücke mitbringt — als einzelnes ESM-Paket (~195 KB gzip), mit vollständigen TypeScript-Typen und ohne DOM-Abhängigkeiten.

Suchst du eine Alternative zu Box2D, Matter.js, Planck.js oder Rapier? Führe den Benchmark im Browser aus, um sie direkt zu vergleichen, oder stürze dich in die interaktiven Beispiele — Physik-Demos und spielbare Mini-Games (Platformer, MOBA, Tower Defense, Slingshot, Pinball, Top-Down-Shooter).

Für KI-gestützte Entwicklung gebaut

Coding-Agents arbeiten am besten mit einer Bibliothek, die sie lesen, typprüfen und tatsächlich ausführen können. nape-js liefert alle drei.

llms.txt, ausgeliefert

Die gesamte API in einer Textdatei unter /llms.txt, dazu die vollständige Referenz unter /llms-full.txt — der entstehende Standard, um Doku an ein Modell zu geben. Gib deinem Agenten die URL, statt HTML zu scrapen.

Typen, denen das Modell trauen kann

Durchgängig handgeschriebenes TypeScript mit strict: true, ausgeliefert als generierte Deklarationen. Dein Agent bekommt echte Signaturen und TSDoc beim Hovern und erfindet dadurch seltener Methoden, die es nicht gibt.

Läuft headless in Node

Keine DOM-Abhängigkeiten: Ein Agent kann die Engine importieren, eine Simulation steppen und das Ergebnis im Terminal prüfen — ohne Browser, ohne Canvas, ohne Mocking.

Deterministisch, damit Tests halten

Mit space.deterministic = true liefern gleiche Eingaben auf derselben Plattform dasselbe Ergebnis. Ein vom Agenten geschriebener Regressionstest bleibt aus dem richtigen Grund grün.

Dokumentierte Fallstricke

Ein Anti-Pattern-Leitfaden und ein Troubleshooting-Leitfaden benennen die Fehler, die Modelle bei Physik-APIs am häufigsten machen.

Aufgabenorientierte Rezepte

Das Kochbuch ist nach Zielen gegliedert — Platformer, Ragdoll, Flüssigkeit, Replay — also genau in der Form, in der ein Prompt üblicherweise ankommt.

Benchmarks

Jetzt direkt in deinem Browser gemessen. Jeder Test führt den Physik-step() in einer engen Schleife aus und meldet die mittlere Zeit pro Step.

Drücke die Schaltfläche zum Starten.

Die API auf einen Blick

Kern

  • SpacePhysikwelt
  • BodyStarrkörper
  • Vec22D-Vektor
  • AABBBegrenzungsrahmen

Shapes

  • Circleradiusbasiert
  • Polygonkonvexe Hülle
  • Capsuleabgerundete Enden
  • Polygon.box(w, h)