jadnohra / old_tech_experience

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Table of Contents


0. Currently

1. At Havok

a. Nintendo WiiU math library

  1. Instruction-level ARM (handicapped two-float SIMD)
  2. Buggy compiler in terms of performance optimization

b. Physics-2014 contact solver perfromance

  1. Mental models of CPUs at race with CPU improvements

    • Benchmarking ignoring real data becomes dangerous
  2. Research (https://www.agner.org/optimize/#manuals) -> branch prediction as main actor in this context

  3. Proof using counter example :

  4. New (intrusive) optimization : coupling geometry processing to solver using data rearrangement

  5. 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)
  6. Deterministic scaling of cores (Intel many-core CPU R&D)

c. Network physics R&D

  1. Research report and proposed designs
  2. Prototype
  3. Including low-level framework

d. Job queue combinatorial delay mode

  • 1/100000 repro -> found in an hour

e. Geometry numerical issues

  • Jira epsilon
  • Ray sphere: improvement by intuitive solution
  • Ray triangle
    • Improvement by analytical solution
      • Books like 'Floating-Point Computation (Strebenz)', resources like '???'
    • Telescoping debugger
  • 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

f. TOI Argument

  • 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

g. HKDS

  • 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
      • A stumbling block for others at multiple occasions
      • Local problem:
      • Approximations:
      • Algorithm:
  • MLCP: Notebook 'MLCP'
  • Some code
    • Prototyping using Julia : Gitlab
    • MLCP->LCP (error in paper)
    • Co-simulation
  • Dynamics debugging tool:

h. Misc.

2. At Microsoft

3. At Guerrila Games

  1. AI environment-aware physical behavior: Video
  2. Automatic region generation
    1. Porting of recast 'ugly and cryptic' code
      • Improvements of corner cases that other companies presented as challenges during GDC
    2. Research sekeltonization algorithms
    3. Choose and implement
    4. Modify to fit our application (stray edges)
  3. Vehicle AI : Video
  4. SPU + PS3 multithreading/DMA tricky bug chasing

4. Before that

  1. World of Football
  2. Mocap loader, skelton semantics, footplant detection, UI framework

5. Problem Solving Approach

  1. I have too many topics that I care about
  2. In the past, I had the luxury to focus one at a time, since some years, I cannot afford this anymore
  3. Stack keeps growing bigger
  4. Tried many techniques to mitigate this
    1. Physical notebooks
    2. Large single-topic latex documents
      1. show PL/QL printed book
    3. Currently: combination of physical notes, latex summaries, and gitlab project management
      1. https://gitlab.com/jadnohra/study/issues/17
      2. https://gitlab.com/jadnohra/study/issues/7
      3. https://gitlab.com/jadnohra/study/issues/13 -> https://gitlab.com/jadnohra/study/issues/15
      4. I also use this for developing all the high-level knowledge I need about SIM & L4+
      5. 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

6. Miscellaneous

About


Languages

Language:Python 88.1%Language:C++ 11.4%Language:Makefile 0.5%