Moteur physique 2D entièrement typé pour TypeScript et JavaScript — réécriture moderne de Nape
Corps rigides • Cercles, polygones et capsules • Contraintes • Simulation de fluides • Callbacks de collision • Raycasting et requêtes spatiales • Fracture • Corps mous via contraintes • Multijoueur déterministe • Sérialisation • Prise en charge des Web Workers — sans dépendances, ~195 Ko gzip.
npm install @newkrok/nape-js
Cliquez/glissez sur le canvas pour interagir. Choisissez une démo ci-dessous. Physique Jeu
Des jeux publiés qui tournent avec la physique de nape-js — jouez-y dans le navigateur ou récupérez la version native.
Life of a Fish
Une plongée sous-marine en pixels : nagez, esquivez et traversez les grottes, avec des boss à plusieurs phases et une descente quotidienne.
loaf.newkrok.com →
MX Dash
Arcade de motocross en vue de côté — un pilote articulé sur suspension réelle, gros sauts, flips et replays de chute au ralenti.
mxdash.newkrok.com →
Dust Kings
Course de monster trucks en voxels — circuits en terre faits main, courses rapides et défi quotidien. Actuellement en bêta fermée.
dustkings.newkrok.com →
Vous avez publié quelque chose avec nape-js ? Ouvrez une issue et cela pourra figurer ici.
nape-js est l'un des rares moteurs physiques 2D pour JavaScript et TypeScript à proposer la dynamique des corps rigides, des liaisons (PivotJoint, DistanceJoint, WeldJoint, AngleJoint, MotorJoint, LineJoint, PulleyJoint, SpringJoint), la flottabilité des fluides, la fracture, des corps mous et du tissu construits à partir de réseaux de contraintes, le raycasting et les balayages convexes, un contrôleur de personnage intégré, un pas de simulation déterministe pour le rollback multijoueur, la sérialisation binaire, l'enregistrement de replays et un pont Web Worker hors thread principal — dans un seul paquet ESM (~195 Ko gzip), avec des types TypeScript complets et sans dépendance au DOM.
Vous cherchez une alternative à Box2D, Matter.js, Planck.js ou Rapier ? Lancez le benchmark dans le navigateur pour les comparer directement, ou plongez dans les exemples interactifs — démos physiques et mini-jeux jouables (platformer, MOBA, tower defense, lance-pierre, flipper, shooter en vue de dessus).
Les agents de code travaillent mieux avec une bibliothèque qu'ils peuvent lire, typer et réellement exécuter. nape-js fournit les trois.
Toute l'API dans un fichier texte à /llms.txt, plus une référence complète à /llms-full.txt — le standard émergent pour fournir la documentation à un modèle. Donnez l'URL à votre agent au lieu de scraper du HTML.
Du TypeScript écrit à la main partout avec strict: true, livré sous forme de déclarations générées. Votre agent obtient de vraies signatures et la TSDoc au survol, et invente donc moins de méthodes inexistantes.
Zéro dépendance au DOM : un agent peut importer le moteur, faire avancer une simulation et vérifier le résultat dans un terminal — sans navigateur, sans canvas, sans mock.
Avec space.deterministic = true, les mêmes entrées donnent le même résultat sur la même plateforme. Un test de régression écrit par un agent reste vert pour la bonne raison.
Un guide des anti-patterns et un guide de dépannage détaillent les erreurs que les modèles commettent le plus souvent avec les API physiques.
Le livre de recettes est organisé par objectif — plateforme, ragdoll, fluide, replay — c'est-à-dire la forme sous laquelle arrive généralement un prompt.
Mesuré dans votre navigateur, en direct. Chaque test exécute le step() de la physique dans une boucle serrée et rapporte le temps médian par step.
Appuyez sur le bouton pour démarrer.