add manifest
[platform/upstream/libbullet.git] / ChangeLog
1 Bullet Continuous Collision Detection and Physics Library
2 Primary author and maintainer: Erwin Coumans
3
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
6
7 2012 September 10
8         - Bullet 2.81 release preparation
9         
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                         
18         
19 2011 April 8
20         - Bullet 2.78 release 2383
21         - Added FractureDemo
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
25
26 2010 September 7
27         - autotools now uses CamelCase naming for libraries just like cmake:
28         libbulletdynamics -> libBulletDynamics, libbulletmath -> libLinearMath
29
30 2010 July 21
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
35         Thanks to AMD
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)
40
41 2010 March 6
42         - Dynamica Maya plugin (and COLLADA support) is moved to http://dynamica.googlecode.com
43
44 2010 February
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
49
50
51 2009 September 17
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
57
58
59 2009 September 6
60         - Bullet 2.75 release
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
72         
73
74 2008 December 2
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'
78
79 2008 November 30
80         - Add highly optimized SIMD branchless PGS/SI solver innerloop 
81
82 2008 November 12
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
87
88 2008 November 11
89         - Add CProfileManager::dumpAll() to dump performance statistics to console using printf.
90         - Add support for interaction between btSoftBody and btCollisionObject/btGhostObject
91
92 2008 November 8
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
97
98 2008 November 6
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
103         
104 2008 November 4
105         - add btAxisSweep::resetPool to avoid non-determinism due to shuffled linked list
106         Thanks to Ole for the contribution, 
107
108 2008 October 30
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)
111
112 2008 October 20
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
116
117 2008 October 17
118         - Added btGhostObject support, this helps character controller, explosions, triggers and other local spatial queries
119
120 2008 October 10
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
123
124
125 2008 October 3
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
129         
130 2008 Sept 30
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
133
134 2008 Sept 28
135         - Fixed rotation issues in Dynamic Maya Plugin
136
137 2008 Sept 11
138         - Enable CCD motion clamping for btDiscreteDynamicsWorld, to avoid tunneling. A more advanced solution will be implemented in btContinuousDynamicsWorld.
139
140 2008 Sept 7
141         - Add btScaledBvhTriangleMeshShape, to allow re-use of btBvhTriangleMeshShape of different sizes, without copying of the BVH data.
142
143 2008 Sept 5
144         - Enabled Demos/ForkLiftDemo
145         Thanks Roman Ponomarev.
146
147 2008 Sept 4
148         - Added btCudaBroadphase in Extras/CUDA: some research into accelerating Bullet using CUDA.
149         Thanks to the particle demo from the NVidia CUDA SDK.
150         
151 2008 Sept 3
152         - Several bug fixes and contributions related to inertia tensor, memory leaks etc.
153         Thanks to Ole K.
154
155 2008 Sept 1
156         - Updated CDTestFramework, with latest version of OPCODE Array SAP. See Extras/CDTestFramework
157         Thanks to Pierre Terdiman for the update
158
159 2008 August 25
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
162         
163 2008 August 14
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.
166         
167 2008 July 31
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
179
180 2008 July 27
181
182 btDbvtBroadphase:
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.
187 btSoftBody:
188         - Fixed singular matrix issues related to polar decomposition (flat meshes).
189 DemoApplication:
190         - Shadows (enable/disable through 'g' or DemoApplication::setShadows(bool)).
191         - Texture can be enable/disable through 'u'
192 CDFramework:
193         - fixed compilation issues.
194         All thanks to Nathanael Presson
195
196 2008 July 10
197         - Added btMultimaterialTriangleMeshShape and MultiMaterialDemo
198         Thanks to Alex Silverman for the contribution
199
200 2008 June 30
201         - Added initial support for kinematic character controller
202         Thanks to John McCutchan
203
204 2008 April 14
205         - Added ray cast support for Soft Bodies
206         Thanks to Nathanael Presson for the contribution
207         
208 2008 April 9
209         - Cleanup of Stan Melax ConvexHull, removed Extras/ConvexHull, moved sources into LinearMath/BulletCollision
210
211 2008 April 4
212         - Added btSliderConstraint and demo
213         Thanks Roman Ponomarev
214         
215 2008 April 3
216         - Fixed btMinkowskiSumShape, and added hitpoint to btSubsimplexConvexCast
217
218 2008 April 2
219         - Added Extras/CdTestFrameWork
220         Thanks Pierre Terdiman
221
222 2008 April 1
223         - Added posix thread (pthread) support
224         Thanks Enrico
225
226 2008 March 30
227         - Added Soft Body, cloth, rope and deformable volumes, including demos and interaction
228         Thanks Nathanael Presson for this great contribution
229         
230         2008 March 17
231         - Improved BulletColladaConverter
232         Thanks John McCutchan
233
234 2008 March 15
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
239
240 2008 March 30
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        
243
244 2008 Feb 27
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
248
249 2008 Feb 8
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
252
253 2008 Feb 6
254         - Added btCapsuleShapeX and btCapsuleShapeZ for capsules around X and Z axis (default capsule is around Y)
255         
256 2008 Feb 3
257         - Added btTypedUserInfo, useful for serialization
258
259 2008 Jan 31
260         - Add support for 16 and 32-bit indices for SPU / BulletMultiThreaded version.
261
262 2008 Jan 29
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.
264
265 2008 Jan 23
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.
267         
268 2008 Jan 14
269         - Add support for batch raycasting on SPU / BulletMultiThreaded
270         
271 2007 Dec 16
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.
280
281 2007 Dec 14
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
285         
286
287 2007 Dec 11
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.
294
295 2007 Dec 10
296         - Fixes in btHeightfieldTerrainShape
297         Thanks to Jay Lee for the patch.
298
299 2007    Dec 9
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)
304
305 2007 Dec 6
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:
317
318 2007 Nov 28:
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
327
328
329 2007, November 20
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
334
335 2007 Nov 11
336         - Fixed parallel solver (BulletMultiThreaded) friction issue
337         - Terminate Win32 Threads when closing the CcdPhysicsDemo (when USE_PARALLEL_SOLVER/USE_PARALLEL_DISPATCHER is defined)
338
339 2007 Nov 6
340         - Added support for 16-bit indices for triangle meshes
341         - Added support for multiple mesh parts using btBvhTriangleMeshShape.
342         Thanks to Tim Johansson
343         
344 2007 Oct 22
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
348         Thanks Marcus Hennix
349         
350 2007 Oct 20
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)
355
356 2007 Ocy 17
357         - Allow user to pass in their own memory (stack and pool) allocators, through collisionConfiguration. See demos how to use this
358
359 2007 Oct 14
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.
367
368 2007 Oct 13
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
374
375 2007 Oct 11
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
381
382 2007 Sept 28
383         - upgraded GIMPACT to version 0.3
384         Thanks to Francisco Leon
385
386 2007 Sept 27
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.
389
390 2007 Sept 13
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
394                 
395 2007 Sept 10
396         - removed union from btQuadWordStorage, it caused issues under certain version of gcc/Linux
397
398 2007 Sept 10
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
403
404 2007 Sept 9
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
412         
413 2007 Sept 7
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.
421         
422 2007 Aug 31
423         - fixed MSVC 6 build
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
427
428 2007 Aug 24
429         - fixed bug in btMatrix3x3::transposeTimes(const btMatrix3x3& m) const. Luckily it wasn't used in core parts of the library (yet).
430         Thanks to Jay Lee
431         
432 2007 Aug 15
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
435
436 2007 Aug 14
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)  
442         
443 2007 Aug 2
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
447
448
449 2007 July 27
450         - added Ragdoll Demo
451                 Thanks to Marten Svanfeldt (Starbreeze Studios)
452
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
463
464         
465 2007 July 25
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)
468         
469 2007 July 13
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/"
472
473 2007 July 10
474         - Updated Bullet User Manual
475
476 2007 July 5
477         - added btConeTwistConstraint, especially useful for ragdolls. See Demos/RagdollDemo
478                 Thanks to Marten Svanfeldt (Starbreeze Studios)
479
480 2007 June 29
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
487                 
488                 
489 2007 June 15
490         - Changed btAlignedObjectArray to call copy constructor/replacement new for duplication, rather then assignment operator (operator=).
491
492 2007 June 11
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
496
497         - Added managed Bullet library, entirely rewritten in C# for Windows and XBox 360 XNA
498                 See Extras/BulletX
499                 Thanks to KleMiX, aka Vsevolod Klementjev
500
501 2007 May 31
502         - sign-bit went wrong in case of 32-bit broadphase, causing quantization problems. 
503                 Thanks DevO for reporting.
504
505 2007 May 23
506         - Fixed quantization problem for planar triangle meshes in btOptimizedBvh
507                 Thanks Phil Knight for reporting and helping to fix this bug.
508                 
509 2007 May 20
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
517
518 2007 April 22
519         - Added braking functionality to btRaycastVehicle
520         - Removed tons of warnings, under MSVC 2005 compilation in -W4
521         
522 2007 March 21
523         - Fixed issues: comma at end of enum causes errors for some compilers
524         - Fixed initialization bug in LocalRayResult (  m_localShapeInfo(localShapeInfo) )
525         
526 2007 March 20
527         - Added refit tree to quantized stackless tree, and updated ConcaveDemo as example.
528         
529 2007 March 17
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)
534         
535 2007 March 12
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
539         
540 2007 March 8
541         - Fixed bug in constraint/island sorting (caused by replacing STL by dedicated btAlignedObjectArray with heapSort)
542                 Thanks Clemens Unterkofler for pointing this out!
543
544 2007 March 6
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
548
549
550 2007 Feb 25
551         - Improved performance of convex collision shapes, cache local AABB instead of recomputation. This fixes issue with very slow performance in larger .bsp levels
552         
553 2007 Feb 24
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
558
559 2007 Feb 21
560         - Build system: updated bullet.pc.in library names
561         - Updated EPA comparison integration (missing parameter)
562         
563 2007 Jan 04
564         - fixed optimized AABB tree building: in some cases the tree building fails due to unbalanced trees, which generated stack overflow
565         
566 2006 Dec 15
567         - added contribution to allow double precision collision detection/dynamics. Define BT_USE_DOUBLE_PRECISION in your project and libraries that include Bullet
568
569 2006 Dec 14
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
572         
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
577
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)
584
585
586 2006 Nov 28
587         Moved StackAlloc from EPA into LinearMath/btStackAlloc
588         renamed internal class ConcaveShape into btConcaveShape
589         added btHeightfieldTerrainShape (not completed yet)
590                 
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
596         
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
600
601 2006 Nov 2
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
605         
606 2006 Oct 30
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)
619         
620 2006 Oct 4
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)
626         
627 2006 Sept 27
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
632
633 2006 Sept 23
634         Fixed 2 bugs, causing crashes when removing objects. Should do better unit-testing. UnionFind and 3D SAP were involved.
635         
636 2006 Sept 19
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)
639         
640 2006 Sept 16
641         Added Bullet 2.0  User Manual
642         Allow registration of custom user collision algorithms
643
644 2006 Sept 10
645         Started cleaning up demos
646         
647 2006 Sept 4
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
653
654 2006 August 11
655         Added Quake BspDemo
656         Improved CCD for compound and non-convex objects
657
658 2006 August 10
659         Added per-triangle material (friction/restitution) support for non-convex meshes. See ConcaveDemo for usage.
660
661 2006 August 9
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
665         
666 2006 July 26 Erwin Coumans
667         Upgraded to COLLADA-DOM 1.4.1, latest SVN version
668         ColladaDemo can export snapshots to .dae
669         
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)
673
674 2006 July 15 Erwin Coumans
675         Added initial support for Parallel execution (collision detection, constraint solving)
676         See ParallelPhysicsEnvironment in Extras\PhysicsInterface\CcdPhysics
677         
678 2006 July 10 Erwin Coumans
679         Added MacOS X support (some build issues mainly)
680                 
681 2006 July 5 Erwin Coumans
682         Improved COLLADA 1.4 physics import, both COLLADA-DOM and FCollada
683
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
688         
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
694
695 2006 June 19 Erwin Coumans
696         Added support for COLLADA Physics Import.
697         Both jam and Visual Studio can compile ColladaDemo
698
699 2006 June 18 Dirk Gregorius <dirk@dirkgregorius.de>
700         Started implementing Generic6DOF joint and setup basic interface
701
702
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.
713
714 2006 May 24
715         Improved GJK accuracy, fixed GjkConvexCast issue, thanks to ~MyXa~ for reporting
716         
717 2006 May 19
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
722
723 2006 May 13
724         Fixed some bugs in friction / jacobian calculations. Reported by Dirk Gregorius. Thanks!
725
726 2006 May 9
727         Fixed raycasting filtering
728         Moved repository to SVN at https://svn.sourceforge.net/svnroot/bullet
729                 
730 2006 April 27
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)
735                 
736 2006 April 10
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 )
743                 
744 2006 March 21 Frank Richter <resqu@gmx.ch>
745         Removed VC manifest files.
746         Removed superfluous "grpplugins" projects.
747
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
753
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.
759
760 2006 March 14 Frank Richter <resqu@gmx.ch>
761         Added support for shipped GLUT on MinGW.
762         Fixed GLUT support on MinGW.
763
764 2006 March 13 Frank Richter <resqu@gmx.ch>
765         Bolted on Jam-based build system.
766         Generated VC project files.
767         Fixed GCC warnings.
768         Fixed Linux build issues.
769
770 2006 March 13
771 Added 3D Sweep and Prune Broadphase Collision Detection, Contribution from Simon Hobbs.
772
773 2006 March 2
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
777
778 2006 Feb 23
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.
781
782 2005 August 6
783         Bullet 0.2 release with demos, sources, doxygen, draft manual
784
785 2005 June 1
786         First public release of Bullet
787         
788
789 ... todo: add history
790
791 2003 Initial version (continuous collision detection)