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