- 0. Currently
- 1. At Havok
- 2. At Microsoft
- 3. At Guerrila Games
- 4. Before that
- 5. Problem Solving Approach
- 6. Miscellaneous
- CV
- https://github.com/jadnohra/daisy, a traffic simulator
- https://github.com/jadnohra/PaCoS, a concurrency determinism simulator
- https://github.com/jadnohra/hinges_py, a rigid-body-dynamics simulator
- https://github.com/jadnohra/trace, a real-time data plotting tool
- https://github.com/jadnohra/tag_export
- https://github.com/jadnohra/TheNotes
- Scenario language
- Map search
- Scenario augmenter design
- Test validation concept
- Instruction-level ARM (handicapped two-float SIMD)
- Buggy compiler in terms of performance optimization
-
Mental models of CPUs at race with CPU improvements
- Benchmarking ignoring real data becomes dangerous
-
Research (https://www.agner.org/optimize/#manuals) -> branch prediction as main actor in this context
-
New (intrusive) optimization : coupling geometry processing to solver using data rearrangement
-
Also, wrote whole new contact solver, critical component in all games shipped since ~2014
- To get an idea Bullet solver
- Havok's focus: performance
- No bugs ever reported
- Defensive code (tunable defensiveness -> math library only has INFTY and NAN warnings)
- Found bugs in other pieces of code, including hard to find bugs due to slow accumulation of wrong calculation
- tunable per-platform using a very carefully configured set of macros (> 10 options -> code path combinations)
-
Deterministic scaling of cores (Intel many-core CPU R&D)
- Research report and proposed designs
- Prototype
- Including low-level framework
- 1/100000 repro -> found in an hour
- Jira epsilon
- Ray sphere: improvement by intuitive solution
- Ray triangle
- Led to interest about numerical analysis (Studying, etc.)
- Sampler prototype (RRT)
- Interval math library with pessimistic approximate but fast bounds (2x slower than normal arithmetic)
- Also first steps into numerical analysis for dynamics : Residuals
- Open problem ever since the 'TOI' engine was abandoned
- Multiple attempts that replaced artifacts with other artifacts
- Proved that the problem is not solvable: TOI argument
- Effect: stop searching for the solution, focus on which artifacts to trade and when
- Overview : HKDS overview
- A high level view of the approaches
- More detail
- Fast forward: videos of results
- Prerequisites that allowed to even start tackling this
- Rotations and Basics
- Work on stabilizing certain constraints
- Notebook notes on 'universal constraint'
- Substepping algorithm Report
- MLCP: Notebook 'MLCP'
- Some code
- Prototyping using Julia : Gitlab
- MLCP->LCP (error in paper)
- Co-simulation
- Dynamics debugging tool:
- Terminal
python trace.py -test
- Trace user manual
- Terminal
- AI environment-aware physical behavior: Video
- Automatic region generation
- Vehicle AI : Video
- Prototyping VehicleTest on gitlab
- SPU + PS3 multithreading/DMA tricky bug chasing
- World of Football
- Mocap loader, skelton semantics, footplant detection, UI framework
- Bigfoot video
- Bigeye on gitlab
- example: smart pointers 10 years ago
- I have too many topics that I care about
- In the past, I had the luxury to focus one at a time, since some years, I cannot afford this anymore
- Stack keeps growing bigger
- Tried many techniques to mitigate this
- Physical notebooks
- Show GK notes and paper
- https://gitlab.com/jadnohra/project_gk/blob/master/simp-hing-analyt/simp-hing-analyt.pdf
- https://gitlab.com/jadnohra/project_gk/blob/master/Code/hinge_nlsq_simul.py
- https://gitlab.com/jadnohra/project_gk/blob/master/Code/plot_tool.py
- https://gitlab.com/jadnohra/project_gk/blob/master/Code/plot_tool_repo.txt
- https://gitlab.com/jadnohra/jad-pre-2015-dabblings/blob/master/Lab2015/asinus_salutem/scripts/gk_notes_p45.txt
- https://gitlab.com/jadnohra/jad-pre-2015-dabblings/blob/master/Lab2015/asinus_salutem/scripts/test_df.txt
- Terminal:
python hinges_py2.py -scene chain -help -fancy -wobble_body -fwd_euler -control
- Show GK notes and paper
- Large single-topic latex documents
- show PL/QL printed book
- Currently: combination of physical notes, latex summaries, and gitlab project management
- https://gitlab.com/jadnohra/study/issues/17
- https://gitlab.com/jadnohra/study/issues/7
- https://gitlab.com/jadnohra/study/issues/13 -> https://gitlab.com/jadnohra/study/issues/15
- I also use this for developing all the high-level knowledge I need about SIM & L4+
- The biggest challenge is still memorization, I do not do it actively anymore, except when I really have to
- I try to work more as a 'processing machine', I open my notes, switch context for a while, and process for results
- The older the topic, the longer the lead time, can take from a couple of hours to a couple of weeks
- Physical notebooks
- Existing attempts
- More notes