All Projects → vonWolfehaus → von-physics

vonWolfehaus / von-physics

Licence: MIT License
"Arcade"-style game physics library

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to von-physics

ecs-framework
一套ecs框架,可用于egret/laya/cocos及其他使用ts/js语言的引擎
Stars: ✭ 152 (+334.29%)
Mutual labels:  physics, collider
Classic Pool Game
Classic 8 Ball pool game written in JavaScript
Stars: ✭ 177 (+405.71%)
Mutual labels:  physics, collision-detection
Bounce
Bounce is a 3D physics engine for games.
Stars: ✭ 300 (+757.14%)
Mutual labels:  physics, collision-detection
Unity3D-Cars
A project built for a Renaissance Coders tutorial to introduce vehicle physics.
Stars: ✭ 60 (+71.43%)
Mutual labels:  physics, collider
Gjk.c
Gilbert-Johnson-Keerthi (GJK) collision detection algorithm in 200 lines of clean plain C
Stars: ✭ 660 (+1785.71%)
Mutual labels:  physics, collision-detection
Libbulletjme
A JNI interface to Bullet Physics and V-HACD
Stars: ✭ 55 (+57.14%)
Mutual labels:  physics, collision-detection
fdtd
A 3D electromagnetic FDTD simulator written in Python
Stars: ✭ 195 (+457.14%)
Mutual labels:  physics
FastExpm.jl
Implementation of a fast exponential matrix for large matrices (full and sparse)
Stars: ✭ 22 (-37.14%)
Mutual labels:  physics
heliopy
Python for heliospheric and planetary physics
Stars: ✭ 57 (+62.86%)
Mutual labels:  physics
ign-physics
Abstract physics interface designed to support simulation and rapid development of robot applications.
Stars: ✭ 40 (+14.29%)
Mutual labels:  physics
AutoForce
Sparse Gaussian Process Potentials
Stars: ✭ 17 (-51.43%)
Mutual labels:  physics
toybox
a collection of computational playthings.
Stars: ✭ 94 (+168.57%)
Mutual labels:  physics
physics-is-beautiful
Files for Physics Is Beautiful Website
Stars: ✭ 12 (-65.71%)
Mutual labels:  physics
learn-physics
物理引擎学习。详解碰撞检测原理,自己实现一个简易的物理引擎。
Stars: ✭ 33 (-5.71%)
Mutual labels:  physics
tutorials-hg1
These tutorials demonstrate the usage of the Harfang API
Stars: ✭ 12 (-65.71%)
Mutual labels:  physics
spinw
SpinW Matlab library for spin wave calculation
Stars: ✭ 25 (-28.57%)
Mutual labels:  physics
JuliaChallenge
Can you solve all the puzzles in this repo? Master Julia in an easy way!
Stars: ✭ 18 (-48.57%)
Mutual labels:  physics
my-math-notes
All of my math stuff from grad school.
Stars: ✭ 41 (+17.14%)
Mutual labels:  physics
blog
I wonder how~, I wonder why~
Stars: ✭ 30 (-14.29%)
Mutual labels:  collision-detection
golq
📡 2D locality queries in Go
Stars: ✭ 28 (-20%)
Mutual labels:  collision-detection

"Arcade"-style game physics

screenshot

After implementing far too many collision detection algorithms in my various experiments and games since 2009, I've decided enough is enough and compiled this tiny library of just the raw math behind collision detection and physical response.

It is meant to provide the minimal (and in most cases sufficient) system necessary for creating high performance real-time applications with dynamic objects interacting with each other.

Features:

  • Most efficient techniques for performant detection and response for axis-aligned 2D and 3D boxes and radial colliders
  • Mass and restitution only (sometimes less is more)
  • Continuous collision detection for 2D and 3D radial colliders
  • Signal dispatch on collision that provides collided entity and manifold describing the collision
  • "World" class with friction, gravity, and boundaries (infinity works too)
  • Memory-efficient broadphase (2D static grid)

Bonus 2D and 3D wandering behavior in the examples.

Note: If you use continuous detection and the broadphase grid, it can still miss some collisions because it doesn't check cells that the collider will be in after velocity is applied (it only uses position).

Full engines with readable code

These are engines that have fancy things like rotational torque, joints, and so on. If you want a "physics-based" game, use one of these instead. Or just use Unity, let's be honest. The web is terrible for games, if only because you can't safeguard your assets. Great for prototyping though, with the right tools 😉

Resources

Other tricks

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].