nape-js

Teljesen típusozott 2D fizikai motor TypeScripthez és JavaScripthez — a Nape modern újraírása

Merev testek • Körök, sokszögek és kapszulák • Kényszerek • Folyadékszimuláció • Ütközési visszahívások • Sugárkövetés és térbeli lekérdezések • Törés • Lágy test kényszerekkel • Determinisztikus többjátékos mód • Szerializálás • Web Worker támogatás — függőségmentes, ~195 KB gzip.

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

Interaktív demók

Kattints vagy húzz a vásznon a kölcsönhatáshoz. Válassz egy demót alább. Fizika Játék

Motor betöltése…
FPS: — Testek: — Lépés: —
Forráskód

nape-js-szel készült

Kiadott játékok, amelyek nape-js fizikán futnak — próbáld ki őket böngészőben, vagy töltsd le a natív változatot.

Készítettél valamit nape-js-szel? Nyiss egy issue-t, és bekerülhet ide.

Miért a nape-js?

A nape-js azon kevés JavaScript- és TypeScript-alapú 2D fizikai motor egyike, amely merevtest-dinamikát, kényszereket (PivotJoint, DistanceJoint, WeldJoint, AngleJoint, MotorJoint, LineJoint, PulleyJoint, SpringJoint), folyadék-felhajtóerőt, törést, kényszerhálóból épített lágytest- és szövetszimulációt, sugárkövetést és konvex söprést, beépített karaktervezérlőt, többjátékos rollbackhez determinisztikus léptetést, bináris szerializálást, visszajátszás-rögzítést és külön szálon futó Web Worker hidat kínál — egyetlen ESM csomagban (~195 KB gzip), teljes TypeScript-típusokkal és DOM-függőség nélkül.

A Box2D, Matter.js, Planck.js vagy Rapier alternatíváját keresed? Futtasd a böngészőbeli teljesítménytesztet, hogy közvetlenül összehasonlítsd őket, vagy merülj el az interaktív példákban — fizikai demók és játszható minijátékok (platformer, MOBA, tornyos védekezés, csúzli, flipper, felülnézetes lövölde).

AI-támogatott fejlesztésre építve

A kódoló ügynökök olyan könyvtárral dolgoznak jól, amit el tudnak olvasni, típusellenőrizni és ténylegesen futtatni. A nape-js mindhármat hozza.

llms.txt, kiszolgálva

A teljes API egyetlen szövegfájlban a /llms.txt címen, a teljes referencia pedig a /llms-full.txt alatt — ez a kialakulóban lévő szabvány a dokumentáció modellnek adására. HTML-kaparás helyett add oda az URL-t az ügynöknek.

Típusok, amikben a modell megbízhat

Végig kézzel írt TypeScript strict: true mellett, generált deklarációkkal szállítva. Az ügynök valódi szignatúrákat és TSDoc-ot kap, így kevesebb nem létező metódust talál ki.

Fut fej nélkül, Node-ban

Nulla DOM-függőség: az ügynök importálhatja a motort, léptethet egy szimulációt, és a terminálban ellenőrizheti az eredményt — böngésző, canvas és mockolás nélkül.

Determinisztikus, így a tesztek tartanak

A space.deterministic = true mellett ugyanaz a bemenet ugyanazt az eredményt adja azonos platformon. Az ügynök írta regressziós teszt a helyes okból marad zöld.

Dokumentált buktatók

Egy anti-pattern útmutató és egy hibaelhárítási útmutató sorolja fel azokat a hibákat, amelyeket a modellek a fizikai API-knál a leggyakrabban elkövetnek.

Feladat alapú receptek

A szakácskönyv célok szerint tagolt — platformer, ragdoll, folyadék, visszajátszás —, vagyis pont abban a formában, ahogy egy prompt érkezni szokott.

Teljesítménytesztek

Épp most, a te böngésződben mérve. Minden teszt egy szoros ciklusban futtatja a fizikai step() hívást, és a lépésenkénti medián időt jelenti.

Nyomd meg a gombot az indításhoz.

Az API dióhéjban

Mag

  • Spacefizikai világ
  • Bodymerev test
  • Vec22D vektor
  • AABBbefoglaló doboz

Alakzatok

  • Circlesugáralapú
  • Polygonkonvex burok
  • Capsulelekerekített végek
  • Polygon.box(w, h)