Popularity
7.8
Growing
Activity
0.0
Stable
26
6
2
Monthly Downloads: 19
Programming language: Haskell
License: BSD 3clause "New" or "Revised" License
Tags:
Math
Latest version: v0.0.1.0
shapesmath alternatives and similar packages
Based on the "Math" category

computationalalgebra
Wellkinded computational algebra library, currently supporting Groebner basis. 
equationalreasoning
Proof assistant for Haskell using DataKinds & PolyKinds 
vectorbinaryinstances
Instances of Data.Binary and Data.Serialize for vector
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest. Visit our partner's website for more details.
Do you think we are missing an alternative of shapesmath or a related project?
README
shapes
physics engine and other tools for 2D shapes
https://youtu.be/DYzf4zBK90o?list=PLmozfF6FosKjmPMnlPoVbWosiExbD0SUF
About
shapes
started out as my second Haskell project. I'm still working on it.
Libraries
shapesmath
: TemplateHaskellgenerated vector math using GHC primops (in place oflinear
)shapes
: physics engine implementationshapesdemo
: interactive demo and debugging tool forshapes
Engine Components
 Contact: find contacts between shapes  e.g. Separating Axis Test (
SAT
)  Constraint: general form (and solution) for constraints on motion of objects
 Solver: solving the set of all constraints in a world
 Broadphase: finding potential interactions (that would give rise to constraints)
How the Solver works
start at Physics.Engine.Main
 Broadphase: Compare axisaligned bounding boxes (
Aabb
) to find pairs of objects that may be interacting. Feed these pairs into the solver.  Generate constraint generators.
* Calculate contacts between a pair of objects (`SAT`).
* Create generators for relevant constraints at each contact (e.g. `Friction`, `NonPenetration`)
* Constraint generators are evaluated with the objects' current state (see 4, Note).
 For each constraint generator that also existed in the previous frame, apply the previous frame's constraint solution.
 Evaluate and solve each constraint generator in sequence. (Optional: repeat this step)
Note: Solving a constraint affects the velocity of the object(s).