- Try out the nalgebra library
- Add testing for generating transform matrices
- Create function to generate vec of matrices from vecs of specs
- Test function
- Create forward and backward mat functions
- Test forward and backward mat functions
- Move origin outside function
- test updated functions
- Add solver
- Make solver and matrix methods have a common interface
- Add debug print method to solver
- Organize
- Test solver
- Implement and test loss function
- Test matrix functions against expected values from js
- Implement gradient descent for Solver
- Test gradient descent convergence
- Add momentum and learn rate for gradient descent
- Time functions
- Add solve method
- Fix the circular reference issue with the population/solver references
- Add threading with rayon
- Add GA Solver
- Test GA Solver
- Move Vector clone calls into IKSolverGA constructor
- Determine whether to use f32 or f64
- Add tests for CollisionManager arm collisions
- Add ncollide CollisionManager class
- Pass tests
- Add tests for CollisionManager world collisions
- pass tests
- Add CollisionManager to GA solver
- Export WASM
- Use in browser
- Allow user to control precision of solution
- Determine if WASM can store an object in the Rust end
- Set up persistent state wasm
- Export GA solver to wasm
- Test GA solver with collision
- Learn to use the Serde library
- Add serialization of colliders
- Add Rayon WASM support
https://github.com/GoogleChromeLabs/wasm-bindgen-rayon
- Add angle constraints to both solvers
- Add collision constraints to both solvers
- Implement collision avoidance jacobian for speedup