Repository navigation
Releases: neil2ball/BulletSim
Release list
OpenMP - cpu-only
This release introduces parallel processing to BulletSim. No longer shall we be constrained to a single-threaded physics engine!!!
There are four different versions compiled to take advantage of available architectures. That means your processor needs to have the appropriate instruction sets to use them.
x86_64_SSE2 is available for compatibility's sake. This should run on any x86_64 processor.
x86_64_AVX is compiled in Linux using the x86-64-v2 flag to ensure compatibility with all processors that have AVX.
x86_64_AVX2 is compiled in Linux using the x86-64-v3 flag to ensure compatibility with all processors that have AVX2.
x86_64_AVX512 is compiled in Linux using the x86-64-v4 flag to ensure compatibility with all processors that have AVX512.
If you want best compatibility, go with SSE2. If you want to truly use the hardware you paid good money for, check what instruction sets are available on your processor and select the appropriate version.
OnlyFloats
This release was made to take advantage of optimizations that can take place during compilation. In particular, AVX is used and the entire package is compiled in single-precision floating points. I also commented out a debug code line that spammed the console. My apologies to those who may have used the initial release. Anyway, enjoy!
Initial cpu-only Release
This is a long-overdue update to the BulletSim C++ wrapper in OpenSimulator. I have introduced two main updates:
- Increase sub-step resolution and filter by context impulse
This introduces two default values that ought to be changeable on the C# (OpenSim) side of things. For now they're set to values that might mimic what ubODE or Havok do. People complain about BulletSim, but they have it backwards. BulletSim does its job so well that we have to back it off a bit to make it act like the other engines. That's what these values are for. We can now dial in what we want, but as of this moment we will need to recompile to do so, hence the default values. Upstream can catch up later while we use this.
DEFAULT_MAX_SUBSTEPS
DEFAULT_CONTACT_IMPULSE_THRESHOLD
Specifically, it ignores small collisions.
- Hollow and cut prims implementation
This is to fix the issue of not being able to walk through hollow objects. I tested it and can walk through hollow objects now. I can even drop a sphere into a pipe with no problems! I'm sure these need fine-tuning, but I think the community would be able to find what the defaults for the following values should be:
HOLLOW_THRESHOLD
CUT_THRESHOLD
INNER_SHAPE_SCALE
Again, these ought to be changeable on the C# side when we get to that point. For now, there was just an educated guess made as to what that value should be. That may change with future releases.
Initial cpu-only pre-release
I am not sure if the .so will work with any system yet, but I have tested it against my development system. The way the code is compiled in Linux at this moment is against shared libraries that I installed after compilation. I managed to get the intended result when I switched over to Windows. Yet I still need to do what I did in Windows in Linux. For now, here is something to get started.