ChangeLog 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795
  1. Bullet Continuous Collision Detection and Physics Library
  2. Primary author and maintainer: Erwin Coumans
  3. This ChangeLog is incomplete, for an up-to-date list of all fixed issues see http://bullet.googlecode.com
  4. using http://tinyurl.com/yabmjjj
  5. 2013 October 23
  6. - Bullet 2.82 release
  7. - See docs/BulletQuickstart.pdf or issue tracked for details.
  8. 2012 September 10
  9. - Bullet 2.81 release preparation
  10. 2011 September 15
  11. - Bullet 2.79 release, revision 2433 (mainly a bugfix release)
  12. - Revert a change in 2.78 related to speculative contacts (it has undesired side effects)
  13. - Use HACD Hierachical Approximate Convex Decomposition (thanks to Khaled Mammou and Sujeon Kim)
  14. - Add Intel cmake-build support for OpenCL accelerated cloth/particle
  15. - add premake4 build system support to autogenerate visual studio project files that can be shipped (see msvc folder)
  16. - preliminary build support for Google NativeClient, using premake4 (see msvc folder)
  17. 2011 April 8
  18. - Bullet 2.78 release 2383
  19. - Added FractureDemo
  20. - Added Separatinx Axis Test and Polyhedral Clipping support (See InternalEdgeDemo)
  21. - Added speculative contacts as CCD response method (See CcdPhysicsDemo)
  22. - OpenCL and DirectCompute cloth as basic support for capsule collision
  23. 2010 September 7
  24. - autotools now uses CamelCase naming for libraries just like cmake:
  25. libbulletdynamics -> libBulletDynamics, libbulletmath -> libLinearMath
  26. 2010 July 21
  27. - Preparing for Bullet 2.77 release, around revision r2135
  28. - Added an OpenCL particle demo, running on NVidia, AMD and MiniCL
  29. Thanks to NVidia for the original particle demo from their OpenCL SDK
  30. - Added GPU deformable object solvers for OpenCL and DirectCompute, and a DirectX 11 cloth demo
  31. Thanks to AMD
  32. - Create a separate library for MiniCL,
  33. MiniCL is a rudimentary OpenCL wrapper that allows to compile OpenCL kernels for multi-core CPU, using Win32 Threads or Posix
  34. - Moved vectormath into Bullet/src, and added a SSE implementation
  35. - Added a btParallelConstraintSolver, mainly for PlayStation 3 Cell SPUs (although it runs fine on CPU too)
  36. 2010 March 6
  37. - Dynamica Maya plugin (and COLLADA support) is moved to http://dynamica.googlecode.com
  38. 2010 February
  39. - Bullet 2.76 release, revision 2010
  40. - support for the .bullet binary file format
  41. - btInternalEdgeUtility to adjust unwanted collisions against internal triangle edges
  42. - Improved Maya Dynamica plugin with better constraint authoring and .bullet file export
  43. 2009 September 17
  44. - Minor update to Bullet 2.75 release, revision 1776
  45. - Support for btConvex2dShape, check out Bullet/Demos/Box2dDemo
  46. - Fixes in build systems
  47. - Minor fix in btGjkPairDetector
  48. - Initialize world transform for btCollisionShape in constructor
  49. 2009 September 6
  50. - Bullet 2.75 release
  51. - Added SPH fluid simulation in Extras, not integrated with rigid body / soft body yet
  52. Thanks to Rama Hoetzlein to make this contribution available under the ZLib license
  53. - add special capsule-capsule collider code in btConvexConvexCollisionAlgorithm, to speed up capsule-ragdolls
  54. - soft body improvement: faster building of bending constraints
  55. - soft body improvement: allow to disable/enable cluster self-collision
  56. - soft body fix: 'exploding' soft bodies when using cluster collision
  57. - fix some degenerate cases in continuous convex cast, could impact ray cast/convex cast
  58. Thanks to Jacob Langford for the report and reproduction cases, see http://code.google.com/p/bullet/issues/detail?id=250&can=1&start=200
  59. - re-enabled split impulse
  60. - added btHinge2Constraint, btUniversalConstraint, btGeneric6DofSpringConstraint
  61. - demonstrate 2D physics with 2D/3D object interaction
  62. 2008 December 2
  63. - Fix contact refresh issues with btCompoundShape, introduced with btDbvt acceleration structure in btCompoundCollisionAlgorithm
  64. - Made btSequentialImpulseConstraintSolver 100% compatible with ODE quickstep
  65. constraints can use 'solveConstraint' method or 'getInfo/getInfo2'
  66. 2008 November 30
  67. - Add highly optimized SIMD branchless PGS/SI solver innerloop
  68. 2008 November 12
  69. - Add compound shape export to BulletColladaConverter
  70. Thanks to JamesH for the report: http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=12&t=2840
  71. - Fix compiler build for Visual Studio 6
  72. Thanks to JoF for the report: http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=2841
  73. 2008 November 11
  74. - Add CProfileManager::dumpAll() to dump performance statistics to console using printf.
  75. - Add support for interaction between btSoftBody and btCollisionObject/btGhostObject
  76. 2008 November 8
  77. - Fix PosixThreadSupport
  78. - Add improved btHeightfieldTerrainShape support and new Demos/TerrainDemo
  79. Thanks to tomva, http://code.google.com/p/bullet/issues/detail?id=63&can=1
  80. - Moved kinematic character controller from Demos/CharacterDemo into src/BulletDynamics/Character/btKinematicCharacterController.cpp
  81. 2008 November 6
  82. - reduced default memory pool allocation from 40Mb to 3Mb. This should be more suitable for all platforms, including iPhone
  83. - improved CUDA broadphase
  84. - IBM Cell SDK 3.x support, fix ibmsdk Makefiles
  85. - improved CMake support with 'install' and 'framework option
  86. 2008 November 4
  87. - add btAxisSweep::resetPool to avoid non-determinism due to shuffled linked list
  88. Thanks to Ole for the contribution,
  89. 2008 October 30
  90. - disabled btTriangleMesh duplicate search by default, it is extremely slow
  91. - added Extras/IFF binary chunk serialization library as preparation for in-game native platform serialization (planned COLLADA DOM -> IFF converter)
  92. 2008 October 20
  93. - added SCE Physics Effects box-box collision detection for SPU/BulletMultiThreaded version
  94. See Bullet/src/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/boxBoxDistance.cpp
  95. Thanks to Sony Computer Entertainment Japan, SCEI for the contribution
  96. 2008 October 17
  97. - Added btGhostObject support, this helps character controller, explosions, triggers and other local spatial queries
  98. 2008 October 10
  99. - Moved aabb to btBroadphaseProxy, improves rayTest dramatically. Further raytest improvements using the broadphase acceleration structures are planned
  100. - Moved BulletMultiThreaded from Extras to /src/BulletMultiThreaded for better integration
  101. 2008 October 3
  102. - Add support for autoconf automake
  103. ./autogen.sh and ./configure will create both Makefile and Jamfile. CMake and autogenerated Visual Studio projectfiles remain supported too.
  104. - Improved ColladaConverter: plane shape export, and callback for shape construction to allow deletion of memory
  105. 2008 Sept 30
  106. - Improved Soft Body support, fixed issues related to soft body colliding against concave triangle meshes
  107. - Shared more code between regular version and SPU/BulletMultiThreaded, in particular GJK/EPA
  108. 2008 Sept 28
  109. - Fixed rotation issues in Dynamic Maya Plugin
  110. 2008 Sept 11
  111. - Enable CCD motion clamping for btDiscreteDynamicsWorld, to avoid tunneling. A more advanced solution will be implemented in btContinuousDynamicsWorld.
  112. 2008 Sept 7
  113. - Add btScaledBvhTriangleMeshShape, to allow re-use of btBvhTriangleMeshShape of different sizes, without copying of the BVH data.
  114. 2008 Sept 5
  115. - Enabled Demos/ForkLiftDemo
  116. Thanks Roman Ponomarev.
  117. 2008 Sept 4
  118. - Added btCudaBroadphase in Extras/CUDA: some research into accelerating Bullet using CUDA.
  119. Thanks to the particle demo from the NVidia CUDA SDK.
  120. 2008 Sept 3
  121. - Several bug fixes and contributions related to inertia tensor, memory leaks etc.
  122. Thanks to Ole K.
  123. 2008 Sept 1
  124. - Updated CDTestFramework, with latest version of OPCODE Array SAP. See Extras/CDTestFramework
  125. Thanks to Pierre Terdiman for the update
  126. 2008 August 25
  127. - Walt Disney Studios contributes their in-house Maya Plugin for simulating Bullet physics, with options for other engines such as PhysBam or PhysX.
  128. Thanks to Nicola Candussi and Arthur Shek
  129. 2008 August 14
  130. - Improved performance for btDbvtBroadphase, based on dual dynamic AABB trees (one for static, one for dynamic objects, where objects can move from one to the other tree)
  131. Thanks to Nathanael Presson again, for all his work.
  132. 2008 July 31
  133. - Added Havok .hkx to COLLADA Physics .dae converter patch+information
  134. - Fix btSubsimplexConvexCast
  135. Thanks to Nacho, http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=2422)
  136. - Fix in rendering, GL_STENCIL
  137. - btTriangleIndexVertexArray indices should be unsigned int/unsigned short int,
  138. - Made InternalProcessAllTriangles virtual, thanks to
  139. Both thank to Fullmetalcoder, http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=2401
  140. - clamp impulse for btPoint2PointConstraint
  141. Thanks to Martijn Reuvers, http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=2418
  142. - Free memory of bvh, pass in scaling factor (optional)
  143. Thanks to Roy Eltham, http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=2375
  144. 2008 July 27
  145. btDbvtBroadphase:
  146. - Fixed a performance issues reported by 'reltham'
  147. - Added btDbvtBroadphase::optimize() for people who want good performances right
  148. away or don't do dynamics.
  149. - fixed compilation issues when DBVT_BP_PROFILE was set.
  150. btSoftBody:
  151. - Fixed singular matrix issues related to polar decomposition (flat meshes).
  152. DemoApplication:
  153. - Shadows (enable/disable through 'g' or DemoApplication::setShadows(bool)).
  154. - Texture can be enable/disable through 'u'
  155. CDFramework:
  156. - fixed compilation issues.
  157. All thanks to Nathanael Presson
  158. 2008 July 10
  159. - Added btMultimaterialTriangleMeshShape and MultiMaterialDemo
  160. Thanks to Alex Silverman for the contribution
  161. 2008 June 30
  162. - Added initial support for kinematic character controller
  163. Thanks to John McCutchan
  164. 2008 April 14
  165. - Added ray cast support for Soft Bodies
  166. Thanks to Nathanael Presson for the contribution
  167. 2008 April 9
  168. - Cleanup of Stan Melax ConvexHull, removed Extras/ConvexHull, moved sources into LinearMath/BulletCollision
  169. 2008 April 4
  170. - Added btSliderConstraint and demo
  171. Thanks Roman Ponomarev
  172. 2008 April 3
  173. - Fixed btMinkowskiSumShape, and added hitpoint to btSubsimplexConvexCast
  174. 2008 April 2
  175. - Added Extras/CdTestFrameWork
  176. Thanks Pierre Terdiman
  177. 2008 April 1
  178. - Added posix thread (pthread) support
  179. Thanks Enrico
  180. 2008 March 30
  181. - Added Soft Body, cloth, rope and deformable volumes, including demos and interaction
  182. Thanks Nathanael Presson for this great contribution
  183. 2008 March 17
  184. - Improved BulletColladaConverter
  185. Thanks John McCutchan
  186. 2008 March 15
  187. - btMultiSapBroadphase in a working state. Needs more optimizations to be fully useable.
  188. - Allow btOptimizedBvh to be used for arbitrary objects, not just triangles
  189. - added quicksort to btAlignedObjectArray
  190. - removed btTypedUserInfo, added btHashMap
  191. 2008 March 30
  192. - Moved quickstep solver and boxbox into Bullet/src folder
  193. Thanks Russell L. Smith for permission to redistribute Open Dynamics Engine quickstep and box-box under the ZLib license
  194. 2008 Feb 27
  195. - Added initial version for Character Control Demo
  196. - Applied fixes to IBM Cell SDK 3.0 build makefiles
  197. Thanks Jochen and mojo for reporting/providing patch: http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=1922
  198. 2008 Feb 8
  199. - Bugfixes in ConvexCast support against the world.
  200. Thanks to Isgmasa for reporting/providing fix: http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=1823
  201. 2008 Feb 6
  202. - Added btCapsuleShapeX and btCapsuleShapeZ for capsules around X and Z axis (default capsule is around Y)
  203. 2008 Feb 3
  204. - Added btTypedUserInfo, useful for serialization
  205. 2008 Jan 31
  206. - Add support for 16 and 32-bit indices for SPU / BulletMultiThreaded version.
  207. 2008 Jan 29
  208. - Added COLLADA Physics export/serialization/snapshot from any Bullet btDynamicsWorld. Saving the physics world into a text .xml file is useful for debugging etc.
  209. 2008 Jan 23
  210. - Added Stan Melax Convex Hull utility library in Extras/ConvexHull. This is useful to render non-polyhedral convex objects, and to simplify convex polyhedra.
  211. 2008 Jan 14
  212. - Add support for batch raycasting on SPU / BulletMultiThreaded
  213. 2007 Dec 16
  214. - Added btRigidBodyConstructionInfo, to make it easier to set individual setting (and leave other untouched) during rigid body construction.
  215. Thanks Vangelis Kokkevis for pointing this out.
  216. - Fixed memoryleak in the ConstraintDemo and Raytracer demo.
  217. - Fixed issue with clearing forces/gravity at the end of the stepSimulation, instead of during internalSingleStepSimulation.
  218. Thanks chunky for pointing this out: http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=1780
  219. - Disabled additional damping in rigid body by default, but enable it in most demos. Set btRigidBodyConstructionInfo m_additionalDamping to true to enable this.
  220. - Removed obsolete QUICKPROF BEGIN/END_PROFILE, and enabled BT_PROFILE. Profiling is enabled by default (see Bullet/Demos/OpenGL/DemoApplication.cpp how to use this).
  221. User can switch off profiling by enabling define BT_NO_PROFILE in Bullet/src/btQuickprof.h.
  222. 2007 Dec 14
  223. - Added Hello World and BulletMultiThreaded demos
  224. - Add portable version of BulletMultiThreaded, through SequentialThreadSupport (non-parallel but sharing the same code-path)
  225. - Add Cmake support for AllBulletDemos
  226. 2007 Dec 11
  227. - Moved the 'btRigidBody::clearForce' to the end of the stepSimulation, instead of in each substep.
  228. See discussion http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=1601
  229. - Added btConvexPlaneCollisionAlgorithm, makes planes perform better, and prevents tunneling
  230. Thanks Andy O'Neil for reporting the performance/functionality issue
  231. - Fixes for IBM Cell SDK 3.0
  232. Thanks to Jochen Roth for the patch.
  233. 2007 Dec 10
  234. - Fixes in btHeightfieldTerrainShape
  235. Thanks to Jay Lee for the patch.
  236. 2007 Dec 9
  237. - Only update aabb of active objects
  238. Thanks Peter Tchernev for reporting (http://bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=1764 )
  239. - Added workaround to compile libxml under Visual Studio 2008 Beta 2
  240. - Make glui compile under MSVC 9.0 beta (vsnprintf is already defined)
  241. 2007 Dec 6
  242. - Added DynamicControlDemo, showing dynamic control through constraint motors
  243. Thanks to Eddy Boxerman
  244. - Add support for generic concave shapes for convex cast.
  245. - Added convex cast query to collision world.
  246. - Added workaround for OpenGL bug in Mac OS X 10.5.0 (Leopard)
  247. - Added concave raycast demo
  248. All above thanks to John McCutchan (JMC)
  249. - Fixed issues that prevent Linux version to compile.
  250. Thanks to Enrico for reporting and patch, see
  251. - Fixed misleading name 'numTriangleIndices' into 'numTriangles'
  252. Thanks Sean Tasker for reporting:
  253. 2007 Nov 28:
  254. - Added raycast against trianglemesh. Will be extended to object cast soon.
  255. Thanks John McCutchan (JMC)
  256. - make getNumPoints const correct, add const getPoints().
  257. Thanks Dirk Gregorius
  258. - Bugfix: allow btCollisionObjects (non-btRigidBody) to interact properly with btRigidBody for cache-friendly btSequentialImpulseConstraintSolver.
  259. Thanks Andy O'Neil for pointing this out.
  260. - Bugfix: don't fail if spheres have identical center, use arbitrary separating normal (1,0,0)
  261. Thanks Sean Tasker for reporting! http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=1681
  262. 2007, November 20
  263. - Added hierarchical profiling
  264. - Fixed memory leak in btMultiSapBroadphase,
  265. - Fixed hash function (typo, should use 2 proxies)
  266. Thanks to Stephen (shatcher) for reporting and fixes! http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=1696
  267. 2007 Nov 11
  268. - Fixed parallel solver (BulletMultiThreaded) friction issue
  269. - Terminate Win32 Threads when closing the CcdPhysicsDemo (when USE_PARALLEL_SOLVER/USE_PARALLEL_DISPATCHER is defined)
  270. 2007 Nov 6
  271. - Added support for 16-bit indices for triangle meshes
  272. - Added support for multiple mesh parts using btBvhTriangleMeshShape.
  273. Thanks to Tim Johansson
  274. 2007 Oct 22
  275. - All memory allocations go through btAlignedAlloc/btAlignedFree. User can override this to verify memory leaks
  276. - added a few more demos to AllBulletDemos
  277. - fix for one of the constructors of btHingeConstraint
  278. Thanks Marcus Hennix
  279. 2007 Oct 20
  280. - included glui, a GLUT/OpenGL based toolkit for some graphical user elements
  281. Removed dynamic_cast from glui, to allow linkage without rtti
  282. - added Box2D framework using glui, allowing all demos to run within one executable
  283. Thanks Erin Catto for the FrameWork skeleton (http://www.box2d.org)
  284. 2007 Ocy 17
  285. - Allow user to pass in their own memory (stack and pool) allocators, through collisionConfiguration. See demos how to use this
  286. 2007 Oct 14
  287. - Included working version of Cell SPU parallel optimized version for Libspe2 SPU task scheduler.
  288. This version compiles and runs on Playstation 3 Linux and IBM CellBlade, see BulletSpuOptimized.pdf for build instructions
  289. (Official Playstation 3 developers can request a SPURS version through Sony PS3 Devnet.)
  290. Thanks to IBM 'Extreme Blue' project for the contribution
  291. http://www-913.ibm.com/employment/us/extremeblue/
  292. Thanks Minh Cuong Tran, Benjamin Hoeferlin, Frederick Roth and Martina Huellmann
  293. for various contributions to get this initial Libspe2 parallel version up and running.
  294. 2007 Oct 13
  295. - made 'btCollisionShape::calculateLocalInertia' const
  296. Thanks to cgripeos, see http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=1514
  297. - applied a large patch to remove warnings
  298. Thanks to Enrico, see http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=1568
  299. - removed SSE includes, added #incude <string.h> for memset in Extras/quickstep, thanks Eternl Knight
  300. 2007 Oct 11
  301. - added Hashed Overlapping Pair Cache, recommended by Pierre Terdiman. It works like a charm, thanks Pierre and Erin Catto (code from Box2D)
  302. - modified some margins inside btBoxShape, btCylinderShape and btSphereShape
  303. - added cone debug rendering (for cones with x, y and z up-axis)
  304. - added improvements for optional Extra/quickstep, thanks to Remotion
  305. - some performance improvements for Bullet constraint solver
  306. 2007 Sept 28
  307. - upgraded GIMPACT to version 0.3
  308. Thanks to Francisco Leon
  309. 2007 Sept 27
  310. - added contribution from IBM Extreme Blue project for Libspe2 support. This allow to execute BulletMultiThreaded on Cell SPU under PS3 Linux and Cell Blade. See http://www-913.ibm.com/employment/us/extremeblue
  311. Thanks to Minh Cuong Tran, Frederick Roth, Martina Heullmann and Benjamin Hoeferlin.
  312. 2007 Sept 13
  313. - Improved btGenericD6Constraint. It can be used to create ragdolls (similar to the new btConeTwistConstraint). See GenericJointDemo
  314. - Added support for Bullet constraints in the optional Extras/quickstep ODE solver. See CcdPhysicsDemo, enable #COMPARE_WITH_QUICKSTEP and add libquickstep to the dependencies.
  315. For both patches/improvements thanks Francisco Leon/projectileman
  316. 2007 Sept 10
  317. - removed union from btQuadWordStorage, it caused issues under certain version of gcc/Linux
  318. 2007 Sept 10
  319. - Reverted constraint solver, due to some issues. Need to review the recent memory allocation changes.
  320. - Fixed issue with kinematic objects rotating at low speed: quaternion was de-normalized, passing value > 1 into acosf returns #IND00 invalid values
  321. - 16 byte memory alignment for BVH serialization
  322. - memory cleanup for btPoolAllocator
  323. 2007 Sept 9
  324. - Added serialization for BVH/btBvhTriangleMeshShape, including endian swapping. See ConcaveDemo for an example.
  325. Thanks to Phil Knight for the contribution.
  326. - Fixed issues related to stack allocator/compound collision algorithm
  327. Thanks Proctoid, http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=18&t=1460
  328. - Increase some default memory pool settings, and added a fallback for the constraints solver to use heap memory
  329. - Removed accidential testing code in btScalar.h related to operator new.
  330. - Enable btAxis3Sweep and bt32BitAxis3Sweep to be linked in at the same time, using template
  331. 2007 Sept 7
  332. - Replaced several dynamic memory allocations by stack allocation and pool allocations
  333. - Added branch-free quantized aabb bounding box overlap check, works better on Playstation 3 and XBox 360
  334. Thanks to Phil Knight. Also see www.cellperformance.com for related articles
  335. - Collision algorithms and settings for the memory/stack allocator can be done using btDefaultCollisionConfiguration
  336. This is an API change. See demos how to modify existing implementations with a one-liner.
  337. - Register several collision algorithms by default (sphere-sphere, sphere-box, sphere-triangle)
  338. - Use other traveral method for BVH by default, this improves triangle mesh collision performance.
  339. 2007 Aug 31
  340. - fixed MSVC 6 build
  341. Thanks Proctoid, http://www.continuousphysics.com/Bullet/phpBB2/viewtopic.php?t=1375
  342. - fixed double precision build issues
  343. Thanks Alex Silverman, http://www.continuousphysics.com/Bullet/phpBB2/viewtopic.php?t=1434
  344. 2007 Aug 24
  345. - fixed bug in btMatrix3x3::transposeTimes(const btMatrix3x3& m) const. Luckily it wasn't used in core parts of the library (yet).
  346. Thanks to Jay Lee
  347. 2007 Aug 15
  348. - fixed bug in Extras/GIMPACT 0.2 related to moving triangle meshes
  349. Thanks Thomas, http://www.continuousphysics.com/Bullet/phpBB2/viewtopic.php?t=1368
  350. 2007 Aug 14
  351. - added parallel constraint solver. Works on Playstation 3 Cell SPU and multi core (Win Threads on PC and XBox 360).
  352. See Extras/BulletMultiThreaded for SpuSolverTask subfolder and SpuParallelSolver.cpp
  353. Thanks Marten Svanfeldt (Starbreeze Studios)
  354. - fixed some bugs related to parallel collision detection (Extras/BulletMultiThreaded)
  355. Thanks Marten Svanfeldt (Starbreeze Studios)
  356. 2007 Aug 2
  357. - added compound and concave-convex (swapped) case for BulletMultiThreaded collision detection, thanks to Marten Svanfeldt
  358. - refactored broadphase and overlapping pair cache. This allows performance improvement by combining multiple broadphases. This helps add/remove of large batches of objects and large worlds. See also Pierre Terdiman forum topic:
  359. http://www.continuousphysics.com/Bullet/phpBB2/viewtopic.php?t=1329
  360. 2007 July 27
  361. - added Ragdoll Demo
  362. Thanks to Marten Svanfeldt (Starbreeze Studios)
  363. - added Vector Math library for SIMD 3D graphics linear algebra (vector, matrix, quaternion)
  364. See Bullet/Extras/vectormathlibrary
  365. Supports SIMD SSE, PowerPC PPU and Cell SPU (including PS3 Linux and CellBlade), as well as generic portable scalar version
  366. Will be used to improve BulletMultiThreaded performance
  367. Open Sourced by Sony Computer Entertainment Inc. under the new BSD license
  368. - added SIMD math library
  369. 4-way SIMD for common math functions like atan2f4, cosf4, floorf4, fabsf4, rsqrtf4 etc. Used by Vector Math library under PPU and SPU.
  370. Supports PowerPC (PPU) and Cell SPU, including PS3 Linux and CellBlade.
  371. See Bullet/Extras/simdmathlibrary
  372. Open sourced by Sony Computer Entertainment Inc. under the new BSD license
  373. 2007 July 25
  374. - added several patches: per-rigidbody sleeping threshold. added Assert to prevent deletion of rigidbody while constraints are still pointing at it
  375. Thanks to Marten Svanfeldt (Starbreeze Studios)
  376. 2007 July 13
  377. - fixed relative #include paths again. We can't use "../" relative paths: some compilers choke on it (it causes extreme long paths)
  378. Within the libraries, we always need to start with "BulletCollision/" or "BulletDynamics/ or "LinearMath/"
  379. 2007 July 10
  380. - Updated Bullet User Manual
  381. 2007 July 5
  382. - added btConeTwistConstraint, especially useful for ragdolls. See Demos/RagdollDemo
  383. Thanks to Marten Svanfeldt (Starbreeze Studios)
  384. 2007 June 29
  385. - btHeightfieldTerrainShape: Added heightfield support, with customizations
  386. - Upgraded to GIMPACT 0.2, see Extras/GIMPACT and MovingConcaveDemo
  387. - Several patches from Marten Svanfeldt (Starbreeze Studios)
  388. Improved collision filtering (in broadphase and rigidbody)
  389. Improved debug rendering
  390. Allow to set collision filter group/mask in addRigidBody
  391. 2007 June 15
  392. - Changed btAlignedObjectArray to call copy constructor/replacement new for duplication, rather then assignment operator (operator=).
  393. 2007 June 11
  394. - Added multi-threading. Originally for Playstation 3 Cell SPU, but the same code can run using Win32 Threads using fake DMA transfers (memcpy)
  395. Libspe2 support for Cell Blade / PS3 Linux is upcoming
  396. See Extras/BulletMultiThreaded. Usage: replace btCollisionDispatcher by btSpuGatheringCollisionDispatcher
  397. - Added managed Bullet library, entirely rewritten in C# for Windows and XBox 360 XNA
  398. See Extras/BulletX
  399. Thanks to KleMiX, aka Vsevolod Klementjev
  400. 2007 May 31
  401. - sign-bit went wrong in case of 32-bit broadphase, causing quantization problems.
  402. Thanks DevO for reporting.
  403. 2007 May 23
  404. - Fixed quantization problem for planar triangle meshes in btOptimizedBvh
  405. Thanks Phil Knight for reporting and helping to fix this bug.
  406. 2007 May 20
  407. - btAxisSweep3: Fixed a bug in btAxisSweep3 (sweep and prune) related to object removal. Only showed up when at least one btStaticPlaneShape was inserted.
  408. Thanks tbp for more details on reproducing case.
  409. - btAxisSweep3: Fixed issue with full 32bit precision btAxisSweep3 (define BP_USE_FIXEDPOINT_INT_32), it used only 0xffff/65536 for quantization instead of full integer space (0xffffffff)
  410. - btRaycastVehicle: Added 'getForwardVector' and getCurrentSpeedKmHour utility functions
  411. - Fixed local scaling issues (btConvexTriangleMeshShape, btBvhTriangleMeshShape, removed scaling from btMatrix3x3).
  412. Thanks Volker for reporting!
  413. - Added second filename search, so that starting BspDemo and ConvexDecompositionDemo from within Visual Studio (without setting the starting path) still works
  414. 2007 April 22
  415. - Added braking functionality to btRaycastVehicle
  416. - Removed tons of warnings, under MSVC 2005 compilation in -W4
  417. 2007 March 21
  418. - Fixed issues: comma at end of enum causes errors for some compilers
  419. - Fixed initialization bug in LocalRayResult ( m_localShapeInfo(localShapeInfo) )
  420. 2007 March 20
  421. - Added refit tree to quantized stackless tree, and updated ConcaveDemo as example.
  422. 2007 March 17
  423. - Added constraint solver optimizations, avoiding cross products during iterations, and gather rigidbody/constraint info in contiguous memory (btSolverBody/btSolverConstraint)
  424. - These optimizations don't give large benefit yet, but it has good potential. Turned on by default. Can be switched off using solver->setSolverMode(SOLVER_RANDMIZE_ORDER).
  425. - Enabled anti-jitter for rigid bodies. This is experimental, and can be switched off by setting a global (it is experimental so no proper interface) gJitterVelocityDampingFactor = 1.0;
  426. - Fixed bug in islandmanifold.heapSort(btPersistentManifoldSortPredicate()); , thanks Noehrgel for reporting this (affected Sun Solaris)
  427. 2007 March 12
  428. - Added compile-time toggle between on 16-bit and 32-bit fixed-point SAP broadphase.
  429. This allows the number of bodies to exceed 32767
  430. - Enable useQuantizedAabbCompression on btTriangleMesh, see ColladaDemo
  431. 2007 March 8
  432. - Fixed bug in constraint/island sorting (caused by replacing STL by dedicated btAlignedObjectArray with heapSort)
  433. Thanks Clemens Unterkofler for pointing this out!
  434. 2007 March 6
  435. - removed STL from the Bullet library: replace std::vector by btAlignedObjectArray. Also removed the std::set for overlapping pair set, and turned it into an overlapping pair array. The SAP only adds objects, never removed. Removal is postponed for during traversal of overlapping pairs (duplicates and non-overlapping pairs are removed during that traversal).
  436. - added heap sort and binary search/linear search to btAlignedObjectArray
  437. - fixed wrong cast, thanks Hamstray, http://www.continuousphysics.com/Bullet/phpBB2/viewtopic.php?t=1015
  438. 2007 Feb 25
  439. - Improved performance of convex collision shapes, cache local AABB instead of recomputation. This fixes issue with very slow performance in larger .bsp levels
  440. 2007 Feb 24
  441. - Added compressed/quantized AABB tree, 16 bytes per node, while supporting 32-bit (triangle) indices.
  442. Should be faster and smaller then original version (quantized aabb check is done in integer space)
  443. Original aabb tree nodes are still supported. They are 44 bytes, with full floating point precision and additional subPart index.
  444. - added meter-unit scaling support in ColladaConverter.cpp
  445. 2007 Feb 21
  446. - Build system: updated bullet.pc.in library names
  447. - Updated EPA comparison integration (missing parameter)
  448. 2007 Jan 04
  449. - fixed optimized AABB tree building: in some cases the tree building fails due to unbalanced trees, which generated stack overflow
  450. 2006 Dec 15
  451. - added contribution to allow double precision collision detection/dynamics. Define BT_USE_DOUBLE_PRECISION in your project and libraries that include Bullet
  452. 2006 Dec 14
  453. - merged contact and non-contact constraint solving into one loop, will improve stability of jointed bodies during collisions
  454. - added first draft for hingeConstraint motor
  455. 2006 Dec 8, Erwin Coumans
  456. - preparation for SIMD: added btAlignedAllocator and btAlignedObjectArray, to replace stl std::vector, same interface, but compatible with 16 byte alignment
  457. - cleaned up dependencies in autogenerated msvc projectfiles
  458. - aligned btVector3 on 16 bytes boundary, under win32. see if developers will come up with problems
  459. 2006 Dec 04, Erwin Coumans
  460. Added btNearCallback. This is similar to Open Dynamics Engine (ODE) dNearCallback, but important differences:
  461. - contact points are persistent (lifetime more then one frame, for warmstarting/incremental contact point management)
  462. - continuous collision detection, time of impact
  463. Added btRigidBody::isInWorld(), returns true if btRigidBody is inside a btCollisionWorld/btDynamicsWorld derived class
  464. Added angularFactor to btRigidbody, this helps some character control (no angular impulse applied)
  465. 2006 Nov 28
  466. Moved StackAlloc from EPA into LinearMath/btStackAlloc
  467. renamed internal class ConcaveShape into btConcaveShape
  468. added btHeightfieldTerrainShape (not completed yet)
  469. 2006 Nov 15 Nathanael Presson
  470. Added EPA penetration depth algorithm, Expanding Polytope Algorithm
  471. Added Pierre Terdiman penetration depth comparison/test DEMO
  472. Fixed Bullet's Minkowski sampling penetration depth solver
  473. Contributed by Nathanael Presson
  474. 2006 Nov 11 Francisco León Nájera
  475. Added GIMPACT trimesh collision detection: concave versus concave,
  476. Contributed by Francisco León Nájera
  477. 2006 Nov 2
  478. Minor refactoring: btCollisionObject changes from struct into class, added accessor methods
  479. Force use of btMotionState to synchronize graphics transform, disabled old btRigidBody constructor that accepts btTransform
  480. Renamed treshold into threshold throughout the code
  481. 2006 Oct 30
  482. Enable decoupling of physics and graphics framerate using interpolation and internal fixed timestep, based on btMotionState
  483. Enabled raycast vehicle demo (still needs tuning)
  484. Refresh contact points, even when they are already persistent.
  485. Fixed debugDraw colors (thanks pc0de for reporting)
  486. Use Dispatcher in ConcaveConvexCollisionAlgorithm (so it uses the registered collision algorithm, not hardcoded convexconcave)
  487. Improved performance of constraint solver by precalculating the cross product/impulse arm
  488. Added collision comparison code: ODE box-box, also sphere-triangle
  489. Added safety check into GJK, and an assert for AABB's that are very large
  490. Fixed kinematic support (deriving velocities for animated objects)
  491. Updated comparison/optional quickstep solver in Extras
  492. UserCollisionAlgorithm demonstrates btTriangleMesh usage (easier trimesh compared to index array version)
  493. Removed scaling from btTransform (we only want to deal with rigid transforms)
  494. 2006 Oct 4
  495. Fixed minor leak in btOptimizeBVH
  496. Cleanup of btRigidBody construction
  497. added getW() in btQuaternion
  498. assert when setLinearVelocity is called on btRigidBody
  499. renamed projectfile library from collada-dom to colladadom (to make VC6 happy)
  500. 2006 Sept 27
  501. Big Refactoring: renamed and moved files, create a replacement for CcdPhysicsEnvironment/CcdPhysicsController.
  502. All Bullet classes in LinearMath, BulletCollision and BulletDynamics start with bt, and methods start with lowercase.
  503. Moved classes into src folder, which is the only include folder needed.
  504. Added 2 headerfiles in src: btBulletCollisionCommon.h and btBulletDynamicsCommon.h
  505. 2006 Sept 23
  506. Fixed 2 bugs, causing crashes when removing objects. Should do better unit-testing. UnionFind and 3D SAP were involved.
  507. 2006 Sept 19
  508. Allow programmable friction and contact solver model. User can register their own functions for several interaction types.
  509. Improved performance, and removed hardcoded maximum overlaps (switched from C-array to stl::set)
  510. 2006 Sept 16
  511. Added Bullet 2.0 User Manual
  512. Allow registration of custom user collision algorithms
  513. 2006 Sept 10
  514. Started cleaning up demos
  515. 2006 Sept 4
  516. Fixed concave collision bug (caused instability/missing collisions in meshes/compounds)
  517. Fixed memoryleak in OptimizedBvh, added RayTestSingle to CollisionWorld
  518. Prepared for VehicleDemo
  519. Increased Performance (island generation for sleeping objects took too much time)
  520. Better COLLADA 1.4.1 physics conformance in ColladaDemo
  521. 2006 August 11
  522. Added Quake BspDemo
  523. Improved CCD for compound and non-convex objects
  524. 2006 August 10
  525. Added per-triangle material (friction/restitution) support for non-convex meshes. See ConcaveDemo for usage.
  526. 2006 August 9
  527. Added CMake support (see http://cmake.org)
  528. This can autogenerate makefiles, projectfiles cross platform (including MacOS X Xcode )
  529. Just run cmake . in the root folder and it will autogenerate build files
  530. 2006 July 26 Erwin Coumans
  531. Upgraded to COLLADA-DOM 1.4.1, latest SVN version
  532. ColladaDemo can export snapshots to .dae
  533. 2006 July 24 Erwin Coumans
  534. Added Compound CollisionShape support
  535. (this is still low performance -> requires stackless tree-versus-tree traversal for better performance)
  536. 2006 July 15 Erwin Coumans
  537. Added initial support for Parallel execution (collision detection, constraint solving)
  538. See ParallelPhysicsEnvironment in Extras\PhysicsInterface\CcdPhysics
  539. 2006 July 10 Erwin Coumans
  540. Added MacOS X support (some build issues mainly)
  541. 2006 July 5 Erwin Coumans
  542. Improved COLLADA 1.4 physics import, both COLLADA-DOM and FCollada
  543. 2006 June 29 Erwin Coumans
  544. Refactoring of the broadphase
  545. Moved some optional files to Extras: Algebraic ccd and EPA, quickstep
  546. Moved the limits on bodies/overlap to 32k and 65k
  547. 2006 June 25 Erwin Coumans
  548. Added basic Collision Filtering, during broadphase
  549. Allow adding meshes to the TriangleIndexVertexArray,
  550. (input for TriangleMeshShape)
  551. Preparation for CompoundShape
  552. 2006 June 19 Erwin Coumans
  553. Added support for COLLADA Physics Import.
  554. Both jam and Visual Studio can compile ColladaDemo
  555. 2006 June 18 Dirk Gregorius <[email protected]>
  556. Started implementing Generic6DOF joint and setup basic interface
  557. 2006 June 17 Frank Richter <[email protected]>
  558. Bumped version in configure.ac to 1.5.6 (assuming that "1.5f" is
  559. the next version released).
  560. Updated files in mk/autoconf and mk/jam with copies from CS; fixes a
  561. GLU detection issue on MinGW.
  562. Set msvc/bullet_ico.ico as the default application icon.
  563. Disabled exceptions for gcc builds.
  564. Applied a patch from Michael D. Adams to fix a warning with gcc.
  565. 2006 jUNE 16 Erwin Coumans
  566. Constraints now merge simulation islands.
  567. 2006 May 24
  568. Improved GJK accuracy, fixed GjkConvexCast issue, thanks to ~MyXa~ for reporting
  569. 2006 May 19
  570. Added restitution support
  571. Moved out Friction and Dynamics info from ManifoldPoint (removed logical dependency)
  572. Added a void* m_userPersistentData in ManifoldPoint.
  573. Added a ContactDestroyedCallback, to allow user to handle destruction of m_userPersistentData
  574. 2006 May 13
  575. Fixed some bugs in friction / jacobian calculations. Reported by Dirk Gregorius. Thanks!
  576. 2006 May 9
  577. Fixed raycasting filtering
  578. Moved repository to SVN at https://svn.sourceforge.net/svnroot/bullet
  579. 2006 April 27
  580. Moved raycasting to CollisionWorld, to make it more generic
  581. Added basic CCD option in the CcdCollisionDemo
  582. Fixed 'noResponse' mode, for triggering rigidbodies (useful for Artificial Intelligence queries)
  583. Improved Bullet/ODE sample (in Extras)
  584. 2006 April 10
  585. Separating Axis Test (SAT) convex hull collision detector, contribution by Simon Hobbs
  586. Added SIMD SSE Math classes (for above SAT)
  587. Added Mouse picking in CcdPhysicsDemo
  588. Improved penetration depth estimation in MinkowskiPenetrationDepthSolver, both accuracy and performance
  589. Added Hinge constraint
  590. Added quickprof profiling (see http://sourceforge.net/projects/quickprof )
  591. 2006 March 21 Frank Richter <[email protected]>
  592. Removed VC manifest files.
  593. Removed superfluous "grpplugins" projects.
  594. 2006 March 20 Erwin Coumans
  595. Clamped the acculumated impulse rather then intermediate impulse (within the iteration)
  596. Use the persistent contacts for reusing the impulse
  597. Separated friction and normal solving for better stability
  598. Decreased the default number of iterations of the constraint solver from 10 to 4
  599. 2006 March 19 Frank Richter <[email protected]>
  600. Removed a couple of CSisms from the VC projects.
  601. Fixed VC include & lib paths to go to the Addtional* options
  602. instead the command line arguments.
  603. Added pkgconfig support.
  604. 2006 March 14 Frank Richter <[email protected]>
  605. Added support for shipped GLUT on MinGW.
  606. Fixed GLUT support on MinGW.
  607. 2006 March 13 Frank Richter <[email protected]>
  608. Bolted on Jam-based build system.
  609. Generated VC project files.
  610. Fixed GCC warnings.
  611. Fixed Linux build issues.
  612. 2006 March 13
  613. Added 3D Sweep and Prune Broadphase Collision Detection, Contribution from Simon Hobbs.
  614. 2006 March 2
  615. Minor change in license to ZLib/LibPNG
  616. This makes it legally a bit easier to deploy on Playstation 3
  617. Prepared for more generic constraints, added ConstraintsDemo
  618. 2006 Feb 23
  619. Rearranged files and dependencies to allow for easier standalone Collision Detection without Bullet Dynamics.
  620. See Demos/CollisionInterfaceDemo and Extras/ode/ode/test/test_BulletGjk.cpp for examples how to use.
  621. 2005 August 6
  622. Bullet 0.2 release with demos, sources, doxygen, draft manual
  623. 2005 June 1
  624. First public release of Bullet
  625. ... todo: add history
  626. 2003 Initial version (continuous collision detection)