Version Roadmap

Post and discuss features you'd like to see in the BEPUphysics library.
Norbo
Site Admin
Posts: 4929
Joined: Tue Jul 04, 2006 4:45 am

Re: Version Roadmap

Post by Norbo »

Roadmap updated for the upcoming release of v0.15.2.
Norbo
Site Admin
Posts: 4929
Joined: Tue Jul 04, 2006 4:45 am

Re: Version Roadmap

Post by Norbo »

Updated the roadmap to reflect v0.15.2's release.
Norbo
Site Admin
Posts: 4929
Joined: Tue Jul 04, 2006 4:45 am

Re: Version Roadmap

Post by Norbo »

Here's some initial numbers for the new BoundingBoxTrees used in v0.16.0 (now available in the development fork). The interesting ones are the Construction numbers. The rest of the queries are similar in performance, sometimes favoring the new system, sometimes favoring the old system.

The first number is the number of triangles in the mesh being tested. "Top down" refers to the old trees, "Incremental" to the new trees.
Query time (0.02 width bounding box test) in seconds:
57600 plane: Top down: 1.09615283506682E-06, Incremental: 7.73907116686678E-07
9600 plane: Top down: 9.27916697513137E-07, Incremental: 6.72088205344699E-07
524288: Top down: 1.08654171130693E-06, Incremental: 1.05035737782346E-06
131072: Top down: 9.58148926748981E-07, Incremental: 1.07283297877257E-06 (odd)
~20000 playground: Top down: 2.98690601738417E-07, Incremental: 2.98551799181223E-07
~400 barrel: Top down: 3.80763686446153E-07, Incremental: 1.11425376688931E-07
464 guy: Top down: 5.13696859517222E-07, Incremental: 3.90569094675448E-07
264 skydome: Top down: 4.20863203284534E-07, Incremental: 2.46000874412493E-07
286 castle: Top down: 7.20143998748244E-07, Incremental: 4.25560860388578E-07
20000 smoothterrain9: Top down: 3.71393277637253E-07, Incremental: 4.83340850583045E-07
176 tube: Top down: 4.32899453701612E-07, Incremental: 3.78065508325744E-07


Query time (2 width bounding box test) in seconds:
57600 plane: Top down: 1.09595027440628E-06, Incremental: 7.83046623244081E-07
9600 plane: Top down: 9.316270852858E-07, Incremental: 6.85202043835307E-07
524288: Top down: 6.50355800108664E-06, Incremental: 7.94576133279515E-06
131072: Top down: 2.93307701816848E-06, Incremental: 3.48725192726997E-06
~20000 playground: Top down: 3.28575265851032E-07, Incremental: 3.39419681830987E-07
~400 barrel: Top down: 1.51991114792509E-06, Incremental: 1.34446219421734E-06
464 guy:Top down: 2.9580759307398E-05, Incremental: 2.83375771292162E-05
264 skydome: Top down: 2.21250921555657E-06, Incremental: 2.15128452079807E-06
286 castle: Top down: 1.79017156789479E-05, Incremental: 1.66266383297319E-05
20000 smoothterrain9: Top down: 8.44311001817186E-07, Incremental: 1.13883701001105E-06
176 tube: Top down: 1.09051330546208E-06, Incremental: 1.03909288051946E-06

Infinite raycast in seconds:
57600 plane: Top down: 3.78044541973941E-06, Incremental: 3.45649405161839E-06
9600 plane: Top down: 3.22963009265095E-06, Incremental: 3.01824764041248E-06
524288: Top down: 2.12324101247486E-06, Incremental: 4.50765676922583E-06
131072: Top down: 1.9441570786239E-06, Incremental: 4.17734726061553E-06
~20000 playground: Top down: 4.26932633896195E-06, Incremental: 6.05891125827475E-06
~400 barrel: Top down: 3.15690855960747E-06, Incremental: 2.62637157795234E-06
464 guy: Top down: 3.50194927008852E-06, Incremental: 3.71777488479711E-06
264 skydome: Top down: 3.08106854362813E-06, Incremental: 3.00108812712278E-06
286 castle: Top down: 3.56723005298136E-06, Incremental: 3.16443570342017E-06
20000 smoothterrain9: Top down: 4.24406279289633E-06, Incremental: 7.90154467956199E-06
176 tube: Top down: 3.10337654645991E-06, Incremental: 3.53320848040767E-06

Construction in seconds:
57600 plane: Top down: 2.40410052115476, Incremental: 0.172780269556824
9600 plane:Top down: 0.30460721963027, Incremental: 0.0231030061077036
524288: Top down: 29.2150019066648, Incremental: 2.65379950524584
131072: Top down: 6.03215911519146, Incremental: 0.481443661137746
~20000 playground: Top down: 0.883071451818978, Incremental: 0.0629440333905222
~400 barrel: Top down: 0.00732548620006128, Incremental: 0.000663890941468708
464 guy: Top down: 0.0103335675344351, Incremental: 0.000750466190547741
264 skydome: Top down: 0.00453150679764803, Incremental: 0.000396452621789649
286 castle: Top down: 0.00547576228262187, Incremental: 0.000485755172776408
20000 smoothterrain9: Top down: 0.857996419237643, Incremental: 0.0676871012936317
176 tube: Top down: 0.00292724214948976, Incremental: 0.000283512289970531

Memory cost in bytes
57600 plane: Top down: 3670064, Incremental: 4377576
9600 plane: Top down: 917552, Incremental: 729576
524288: Top down: 29360176, Incremental: 39845864
131072: Top down: 7340200, Incremental: 9961448
~20000 playground: Top down: 1835176, Incremental: 1575456
~400 barrel: Top down: 28720, Incremental: 27944
464 guy: Top down: 28720, Incremental: 35240
264 skydome: Top down: 28720, Incremental: 20040
286 castle: Top down: 28720, Incremental: 21712
20000 smoothterrain9: Top down: 1835176, Incremental: 1519976
176 tube: Top down: 14504, Incremental: 13352
These weren't extremely rigorous tests, and there's a few oddities because of that, but the change in construction time was pretty clear: well over 10 times faster for all meshes.

This system supports all the triangle mesh stuff in the engine, so level loading should go a lot faster in the new version if you were bottlenecked by hierarchy construction :)
Danthekilla
Posts: 136
Joined: Sun Jan 17, 2010 11:35 am

Re: Version Roadmap

Post by Danthekilla »

Norbo wrote:so level loading should go a lot faster in the new version if you were bottlenecked by hierarchy construction :)
This is brillient, we were very much bottlenecked by this as we are constantly rebuilding lots of static tri meshes.

However we are also already memory bottlenecked on the xbox and wp7... So that could be a problem.

Once all the optimizations are in and the BoundingBoxTrees are done do you expect raycasts and querys etc... to become as fast as the old system (or any faster that these benchmarks?) or is this about as fast as the BoundingBoxTree system will get?

Also I would be very interested to know what the performance story is for Xbox and WP7 as bepu for the most part is already fast enough to match the Xbox on even a 5 year old low end pc.

Looks great thou :)
Norbo
Site Admin
Posts: 4929
Joined: Tue Jul 04, 2006 4:45 am

Re: Version Roadmap

Post by Norbo »

Once all the optimizations are in and the BoundingBoxTrees are done do you expect raycasts and querys etc... to become as fast as the old system (or any faster that these benchmarks?) or is this about as fast as the BoundingBoxTree system will get?
It won't change substantially. However, it's already beating the old system in some cases (in both memory size and speed). It just depends on the mesh layout.

Additionally, it's important to note just how little time these queries take relative to everything else. A single microsecond to query even a 524,288 triangle mesh is most likely going to be a lot cheaper than whatever is done using the query's results. Unless a simulation was relying on many thousands of queries a second with little processing done per query, there should not be a perceptible difference. For example, if someone were using the tree to perform raytraced rendering, there might be a noticeable performance difference :) Even then, it might be a positive change in performance.
Also I would be very interested to know what the performance story is for Xbox and WP7 as bepu for the most part is already fast enough to match the Xbox on even a 5 year old low end pc.
The overall numbers aren't too interesting. I performed a few tests from the list above on the Xbox360 and they came out similarly, except multiplied by a constant factor across the board. I expect similar on the phone.
However we are also already memory bottlenecked on the xbox and wp7... So that could be a problem.
You can try the new version out if you'd like; it's in the development fork (http://bepuphysics.codeplex.com/SourceC ... evelopment).

In case they are needed, the old versions of the trees are still there in the DataStructures/Deprecated folder, though have their properties set to not compile (except on the Xbox360 and WP7, where I apparently forgot to do that; this will cause a conflict with the new trees that requires disabling compilation on one of the two trees).

Edit: The problem is now reversed in the latest version; WP7/Xbox360 compile, but I forgot to disable compilation on Windows after doing some testing :) To fix it, right click on the DataStructures/Deprecated trees and set their build action to none.
Norbo
Site Admin
Posts: 4929
Joined: Tue Jul 04, 2006 4:45 am

Re: Version Roadmap

Post by Norbo »

Updated the version roadmap for the upcoming release of v0.16.0.
Norbo
Site Admin
Posts: 4929
Joined: Tue Jul 04, 2006 4:45 am

Re: Version Roadmap

Post by Norbo »

Updated the roadmap to reflect v0.16.0's release.
Fe_Yoshi
Posts: 397
Joined: Tue Jul 04, 2006 5:05 pm
Location: New Tower!

Re: Version Roadmap

Post by Fe_Yoshi »

I can't make heads or tails of this map, and nothing is marked.

The heck Norbo?
It's simple, just take the hydraulic phase ship emulator and attach it to the photon particle emitter, BAM, new tower!
Norbo
Site Admin
Posts: 4929
Joined: Tue Jul 04, 2006 4:45 am

Re: Version Roadmap

Post by Norbo »

-Updated roadmap to reflect v0.16.1's upcoming release.
-Improved invisible map markings to assist Fe Yoshi.
Norbo
Site Admin
Posts: 4929
Joined: Tue Jul 04, 2006 4:45 am

Re: Version Roadmap

Post by Norbo »

Updated roadmap to reflect v0.16.1's release.
Spankenstein
Posts: 249
Joined: Wed Nov 17, 2010 1:49 pm

Re: Version Roadmap

Post by Spankenstein »

-More robust character controller.
Looking forward to this! Will it replace the very old ComplexCharacterController class? I.e. Use a convex shape instead for character representation.
Norbo
Site Admin
Posts: 4929
Joined: Tue Jul 04, 2006 4:45 am

Re: Version Roadmap

Post by Norbo »

The SimpleCharacterController will stick around for simplicity, and it may get cleaned up a bit. The old character controller (currently named CharacterControllerOld) that used external convex casts will be kept around in the Testing folder (where it is now).

There's also a CharacterControllerConvexCast in there which is similar in concept to the SimpleCharacterController, but uses a convex cast instead of a ray cast. That keeps it from falling in super tiny holes, but doesn't solve the other fundamental problems with exposed-cast-based characters.

The current CharacterController in development is aimed at eliminating those fundamental problems. It uses a combination of contact points and a ray manage support and traction. It can't step up into a ceiling like the SimpleCharacterController. It can't occasionally step on something in a wall like the old complicated character. It won't 'accidentally' step up on things when the character isn't actively moving towards it.

Currently, the character can run around, slide, jump, and has configurable air control. You can find it in the AlternateMovement.Testing.New namespace.

Downstepping is half implemented; the character has traction while going down steps, but falls at the speed of gravity. If the steps are too steep, the character will eventually get too far from the stairs and lose traction. Since game characters commonly run around as fast as a car, this would be a problem unless something actively pulls the character down: the other half of downstepping.

The character responds to the relative velocity of the object it is standing on and applies vertical forces to it through its contacts. It does not apply horizontal forces while accelerating yet- that's what I'm currently working on. I should have that in the development version by the end of today or perhaps in an hour or two.

The final piece is stepping up. That will take a bit longer to implement, but the new approach is conceptually more solid than any of the existing characters. I'd like to get the whole character done in less than a week, but we'll see :)
Spankenstein
Posts: 249
Joined: Wed Nov 17, 2010 1:49 pm

Re: Version Roadmap

Post by Spankenstein »

That will take a bit longer to implement, but the new approach is conceptually more solid than any of the existing characters. I'd like to get the whole character done in less than a week, but we'll see
It's good to hear that an improvement is on the way. I look forward to seeing it, when it is ready :)
Norbo
Site Admin
Posts: 4929
Joined: Tue Jul 04, 2006 4:45 am

Re: Version Roadmap

Post by Norbo »

Updated the roadmap for v0.16.2's upcoming release. The character controller is mostly done and available on the development version.
Spankenstein
Posts: 249
Joined: Wed Nov 17, 2010 1:49 pm

Re: Version Roadmap

Post by Spankenstein »

Character collision with walls doesn't produce a smooth sliding response. Instead, the velocity is drastically reduced. The character tends to shake if pressed against a wall and sometimes gets stuck in the process.

I can post some videos of this happening, if it is of any help?
Post Reply