TODO.txt 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. TODO:
  2. - demo: ragdoll <--- maybe later
  3. - add/remove log with TPE_LOG so that its nice, useful and not spammy
  4. DONE:
  5. - FOR GODS SAKE clean the code
  6. - valgrind, cppcheck, read the whole code, refactor, test on embedded, ...
  7. - demos for showing basic use (without using helper.h)
  8. - expand basic tests a bit
  9. - update the player demo (new 3D environment)
  10. - bug: catapult demo doesn't work as expected with soft body velocity
  11. cancelling
  12. - bounding box/sphere test functions/macros for optimization of environment
  13. building, plus a demo that tests if it actually accelerates it
  14. - env function: heightmap
  15. - demo: heightmap
  16. - demo: angry-birds-like game
  17. - demo: car
  18. - env function: cone
  19. - zero weight joints should behave how? <-- disallowed 0 mass
  20. - try to make better car physics
  21. - demo: testing different frictions on skewed plane, also different elasticities
  22. - test env functions with a single distinct point near camera
  23. - fast and accurate distance computation as a compile time option, dist comp is
  24. prolly a bottleneck
  25. - function that tests validity of an environemnt function, i.e. if it behaves
  26. mathematically correct + test built in env functions with it
  27. - bug? bodies stuck inside each other resist falling down by gravity (stack.c)
  28. ^ Seems to be okay now?
  29. - test different tick lengths (demo) <-- seems OK
  30. - test ray casting (e.g. the hit of an outside ray should always be outside)
  31. - BUG: envBox function doesn't pass the env function test! <-- just needed a
  32. bigger epsilon
  33. - current dist approx fails e.g. with heightmaps -- maybe just use the
  34. non-approx version at all times in places where the approx fails? Also
  35. TEST THE APPROX DIST with different env functions <--- the improved version
  36. works alright, leave the rest for the decision of the library user
  37. - ray casting against bodies
  38. - world state hash? for testing determinism etc.
  39. - check if using fastBSphere vs normal BSphere doesn't affect the simulation
  40. result (it shouldn't) <-- on stacks.c gave the same world hash
  41. - fine tune the number of reshapes needed for nice behavior
  42. - elasticity doesn't really work in cases when there is an opposing joint to the
  43. colliding joint, the speeds always cancel out -- leave as is or somehow fix?
  44. ^ let's just ignore it
  45. - body being pushed (e.g. by gravity) onto a sharp edge will likely not resist
  46. (due to only linear forces in connections) and will very easily be split very
  47. wide -- TRY AND FIX! Fix could be e.g. in a special function that checks
  48. whether any connection is over some tension limit and if so inverts velocities
  49. of its joints? OR MAYBE RATHER start applying proportional (as opposed to
  50. current linear) acceleration due to tension after some tension limit.
  51. - demo: soft net (water surface?)
  52. - try this: when reshaping body, also try to subtract velocities of joints that
  53. go against each other along a connection, i.e. velocities that should cancel
  54. out... maybe this reduces shaking?
  55. - air friction (can be done by multiplying energy)
  56. - collision callbacks, ability to custom handle collision response
  57. - zero sized joints should never collide (can be useful) <- NO because 0 size
  58. can also mean just small size (due to size being stored divided)
  59. - debug draw inactive bodies with different color?
  60. - when waking a body by collision, maybe set the disable count to lower values,
  61. to handle situations in which two touching bodies wouldn't allow each other
  62. to ever get disabled
  63. - non-rotating bodies
  64. - demo: 2D physics
  65. - unify naming: rotation vs orientation
  66. - function for "faking" rotation of a single-joint body (ball): it will simply
  67. rotate by the axis perpendicular to its linear velocity vec
  68. - BUG? makeCenterBox doesnt seem to add the center joint: check it out <---
  69. only hard to see
  70. - tip: body center can quickly be approximated by just averaging two extreme
  71. points rather than averaging all points -- write this somewhere
  72. - test/handle: collision where the velocity goes "away" from the collision (can
  73. happen e.g. if one body is hit by a faster body OR by manual manipulation with
  74. velocities) <-- seemed OK
  75. - orthographics projection for debug draw
  76. - demo: momentum conservation