aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt
diff options
context:
space:
mode:
authorRobert Adams2013-01-09 11:06:49 -0800
committerRobert Adams2013-01-11 16:46:38 -0800
commit98168edc29c7c761121e453d82bf1fab52814b58 (patch)
tree6bc2841797c64b34ffde221345ff6b7f9acb7c7a /OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt
parentBulletSim: fix the 'No recognised physics mesh found ...' error spew by remem... (diff)
downloadopensim-SC-98168edc29c7c761121e453d82bf1fab52814b58.zip
opensim-SC-98168edc29c7c761121e453d82bf1fab52814b58.tar.gz
opensim-SC-98168edc29c7c761121e453d82bf1fab52814b58.tar.bz2
opensim-SC-98168edc29c7c761121e453d82bf1fab52814b58.tar.xz
BulletSim: remove double application of buoyancy. Centralize computation of buoyancy. Add motor angular debugging controls.
Diffstat (limited to '')
-rwxr-xr-xOpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt58
1 files changed, 31 insertions, 27 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt
index 29bd4e4..1540dbb 100755
--- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt
+++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt
@@ -1,12 +1,17 @@
1CURRENT PRIORITIES 1CURRENT PRIORITIES
2================================================= 2=================================================
3Nebadon vehicles turning funny in arena
4limitMotorUp calibration (more down?)
5Vehicle angular vertical attraction
6Vehicle angular deflection
7 Preferred orientation angular correction fix
8vehicle angular banking
3Avatars walking up stairs (HALF DONE) 9Avatars walking up stairs (HALF DONE)
10 Radius of the capsule affects ability to climb edges.
4Vehicle movement on terrain smoothness 11Vehicle movement on terrain smoothness
5limitMotorUp calibration (more down?)
6Preferred orientation angular correction fix
7Surfboard go wonky when turning 12Surfboard go wonky when turning
8 Angular motor direction is global coordinates rather than local coordinates? 13 Angular motor direction is global coordinates rather than local coordinates?
9Boats float low in the water 14Boats float low in the water (DONE)
10Avatar movement 15Avatar movement
11 flying into a wall doesn't stop avatar who keeps appearing to move through the obstacle (DONE) 16 flying into a wall doesn't stop avatar who keeps appearing to move through the obstacle (DONE)
12 walking up stairs is not calibrated correctly (stairs out of Kepler cabin) 17 walking up stairs is not calibrated correctly (stairs out of Kepler cabin)
@@ -33,19 +38,15 @@ CRASHES
33 38
34VEHICLES TODO LIST: 39VEHICLES TODO LIST:
35================================================= 40=================================================
36Angular motor direction is global coordinates rather than local coordinates
37Border crossing with linked vehicle causes crash 41Border crossing with linked vehicle causes crash
38Vehicles (Move smoothly) 42Vehicles (Move smoothly)
39Add vehicle collisions so IsColliding is properly reported.
40 Needed for banking, limitMotorUp, movementLimiting, ...
41VehicleAddForce is not scaled by the simulation step but it is only
42 applied for one step. Should it be scaled?
43Some vehicles should not be able to turn if no speed or off ground. 43Some vehicles should not be able to turn if no speed or off ground.
44Cannot edit/move a vehicle being ridden: it jumps back to the origional position. 44Cannot edit/move a vehicle being ridden: it jumps back to the origional position.
45Neb car jiggling left and right 45Neb car jiggling left and right
46 Happens on terrain and any other mesh object. Flat cubes are much smoother. 46 Happens on terrain and any other mesh object. Flat cubes are much smoother.
47 This has been reduced but not eliminated. 47 This has been reduced but not eliminated.
48Implement referenceFrame for all the motion routines. 48Implement referenceFrame for all the motion routines.
49For limitMotorUp, use raycast down to find if vehicle is in the air.
49Angular motion around Z moves the vehicle in world Z and not vehicle Z in ODE. 50Angular motion around Z moves the vehicle in world Z and not vehicle Z in ODE.
50 Verify that angular motion specified around Z moves in the vehicle coordinates. 51 Verify that angular motion specified around Z moves in the vehicle coordinates.
51Verify llGetVel() is returning a smooth and good value for vehicle movement. 52Verify llGetVel() is returning a smooth and good value for vehicle movement.
@@ -54,14 +55,13 @@ Implement function efficiency for lineaar and angular motion.
54After getting off a vehicle, the root prim is phantom (can be walked through) 55After getting off a vehicle, the root prim is phantom (can be walked through)
55 Need to force a position update for the root prim after compound shape destruction 56 Need to force a position update for the root prim after compound shape destruction
56Linkset explosion after three "rides" on Nebadon lite vehicle (LinksetConstraint) 57Linkset explosion after three "rides" on Nebadon lite vehicle (LinksetConstraint)
57For limitMotorUp, use raycast down to find if vehicle is in the air.
58Remove vehicle angular velocity zeroing in BSPrim.UpdateProperties(). 58Remove vehicle angular velocity zeroing in BSPrim.UpdateProperties().
59 A kludge that isn't fixing the real problem of Bullet adding extra motion. 59 A kludge that isn't fixing the real problem of Bullet adding extra motion.
60Incorporate inter-relationship of angular corrections. For instance, angularDeflection 60Incorporate inter-relationship of angular corrections. For instance, angularDeflection
61 and angularMotorUp will compute same X or Y correction. When added together 61 and angularMotorUp will compute same X or Y correction. When added together
62 creates over-correction and over-shoot and wabbling. 62 creates over-correction and over-shoot and wabbling.
63 63
64BULLETSIM TODO LIST: 64GENERAL TODO LIST:
65================================================= 65=================================================
66Implement an avatar mesh shape. The Bullet capsule is way too limited. 66Implement an avatar mesh shape. The Bullet capsule is way too limited.
67 Consider just hand creating a vertex/index array in a new BSShapeAvatar. 67 Consider just hand creating a vertex/index array in a new BSShapeAvatar.
@@ -121,11 +121,9 @@ LinksetCompound: when one of the children changes orientation (like tires
121Verify/think through scripts in children of linksets. What do they reference 121Verify/think through scripts in children of linksets. What do they reference
122 and return when getting position, velocity, ... 122 and return when getting position, velocity, ...
123Confirm constraint linksets still work after making all the changes for compound linksets. 123Confirm constraint linksets still work after making all the changes for compound linksets.
124Use PostTaint callback to do rebuilds for constraint linksets to reduce rebuilding
124Add 'changed' flag or similar to reduce the number of times a linkset is rebuilt. 125Add 'changed' flag or similar to reduce the number of times a linkset is rebuilt.
125 For compound linksets, add ability to remove or reposition individual child shapes. 126 For compound linksets, add ability to remove or reposition individual child shapes.
126Disable activity of passive linkset children.
127 Since the linkset is a compound object, the old prims are left lying
128 around and need to be phantomized so they don't collide, ...
129Speed up creation of large physical linksets 127Speed up creation of large physical linksets
130 For instance, sitting in Neb's car (130 prims) takes several seconds to become physical. 128 For instance, sitting in Neb's car (130 prims) takes several seconds to become physical.
131 REALLY bad for very large physical linksets (freezes the sim for many seconds). 129 REALLY bad for very large physical linksets (freezes the sim for many seconds).
@@ -138,25 +136,21 @@ MORE
138Use the HACD convex hull routine in Bullet rather than the C# version. 136Use the HACD convex hull routine in Bullet rather than the C# version.
139Do we need to do convex hulls all the time? Can complex meshes be left meshes? 137Do we need to do convex hulls all the time? Can complex meshes be left meshes?
140 There is some problem with meshes and collisions 138 There is some problem with meshes and collisions
141Test avatar walking up stairs. How does compare with SL. 139 Hulls are not as detailed as meshes. Hulled vehicles insides are different shape.
142 Radius of the capsule affects ability to climb edges.
143Debounce avatar contact so legs don't keep folding up when standing. 140Debounce avatar contact so legs don't keep folding up when standing.
144Implement LSL physics controls. Like STATUS_ROTATE_X. 141Implement LSL physics controls. Like STATUS_ROTATE_X.
145Add border extensions to terrain to help region crossings and objects leaving region. 142Add border extensions to terrain to help region crossings and objects leaving region.
146Use a different capsule shape for avatar when sitting 143Use a different capsule shape for avatar when sitting
147 LL uses a pyrimidal shape scaled by the avatar's bounding box 144 LL uses a pyrimidal shape scaled by the avatar's bounding box
148 http://wiki.secondlife.com/wiki/File:Avmeshforms.png 145 http://wiki.secondlife.com/wiki/File:Avmeshforms.png
149
150Performance test with lots of avatars. Can BulletSim support a thousand? 146Performance test with lots of avatars. Can BulletSim support a thousand?
151Optimize collisions in C++: only send up to the object subscribed to collisions. 147Optimize collisions in C++: only send up to the object subscribed to collisions.
152 Use collision subscription and remove the collsion(A,B) and collision(B,A) 148 Use collision subscription and remove the collsion(A,B) and collision(B,A)
153Check whether SimMotionState needs large if statement (see TODO). 149Check whether SimMotionState needs large if statement (see TODO).
154
155Implement 'top colliders' info. 150Implement 'top colliders' info.
156Avatar jump 151Avatar jump
157Performance measurement and changes to make quicker. 152Performance measurement and changes to make quicker.
158Implement detailed physics stats (GetStats()). 153Implement detailed physics stats (GetStats()).
159
160Measure performance improvement from hulls 154Measure performance improvement from hulls
161Test not using ghost objects for volume detect implementation. 155Test not using ghost objects for volume detect implementation.
162Performance of closures and delegates for taint processing 156Performance of closures and delegates for taint processing
@@ -164,9 +158,7 @@ Performance of closures and delegates for taint processing
164 Is any slowdown introduced by the existing implementation significant? 158 Is any slowdown introduced by the existing implementation significant?
165Is there are more efficient method of implementing pre and post step actions? 159Is there are more efficient method of implementing pre and post step actions?
166 See http://www.codeproject.com/Articles/29922/Weak-Events-in-C 160 See http://www.codeproject.com/Articles/29922/Weak-Events-in-C
167
168Physics Arena central pyramid: why is one side permiable? 161Physics Arena central pyramid: why is one side permiable?
169
170In SL, perfect spheres don't seem to have rolling friction. Add special case. 162In SL, perfect spheres don't seem to have rolling friction. Add special case.
171Enforce physical parameter min/max: 163Enforce physical parameter min/max:
172 Gravity: [-1, 28] 164 Gravity: [-1, 28]
@@ -197,22 +189,19 @@ Generalize Dynamics and PID with standardized motors.
197Generalize Linkset and vehicles into PropertyManagers 189Generalize Linkset and vehicles into PropertyManagers
198 Methods for Refresh, RemoveBodyDependencies, RestoreBodyDependencies 190 Methods for Refresh, RemoveBodyDependencies, RestoreBodyDependencies
199 Potentially add events for shape destruction, etc. 191 Potentially add events for shape destruction, etc.
200Complete implemention of preStepActions 192Better mechanism for resetting linkset set and vehicle parameters when body rebuilt.
201 Replace vehicle step call with prestep event. 193 BSPrim.CreateGeomAndObject is kludgy with the callbacks, etc.
202 Is there a need for postStepActions? postStepTaints?
203Implement linkset by setting position of children when root updated. (LinksetManual) 194Implement linkset by setting position of children when root updated. (LinksetManual)
204 Linkset implementation using manual prim movement. 195 Linkset implementation using manual prim movement.
205LinkablePrim class? Would that simplify/centralize the linkset logic? 196LinkablePrim class? Would that simplify/centralize the linkset logic?
206BSScene.UpdateParameterSet() is broken. How to set params on objects? 197BSScene.UpdateParameterSet() is broken. How to set params on objects?
207Remove HeightmapInfo from terrain specification
208 Since C++ code does not need terrain height, this structure et al are not needed.
209Add floating motor for BS_FLOATS_ON_WATER so prim and avatar will 198Add floating motor for BS_FLOATS_ON_WATER so prim and avatar will
210 bob at the water level. BSPrim.PositionSanityCheck(). 199 bob at the water level. BSPrim.PositionSanityCheck()
211Should taints check for existance or activeness of target? 200Should taints check for existance or activeness of target?
212 When destroying linksets/etc, taints can be generated for objects that are 201 When destroying linksets/etc, taints can be generated for objects that are
213 actually gone when the taint happens. Crashes don't happen because the taint closure 202 actually gone when the taint happens. Crashes don't happen because the taint closure
214 keeps the object from being freed, but that is just an accident. 203 keeps the object from being freed, but that is just an accident.
215 Possibly have and 'active' flag that is checked by the taint processor? 204 Possibly have an 'active' flag that is checked by the taint processor?
216Parameters for physics logging should be moved from BSScene to BSParam (at least boolean ones) 205Parameters for physics logging should be moved from BSScene to BSParam (at least boolean ones)
217Can some of the physical wrapper classes (BulletBody, BulletWorld, BulletShape) be 'sealed'? 206Can some of the physical wrapper classes (BulletBody, BulletWorld, BulletShape) be 'sealed'?
218There are TOO MANY interfaces from BulletSim core to Bullet itself 207There are TOO MANY interfaces from BulletSim core to Bullet itself
@@ -282,3 +271,18 @@ Redo BulletSimAPI to allow native C# implementation of Bullet option (DONE)
282Meshes rendering as bounding boxes (DONE) 271Meshes rendering as bounding boxes (DONE)
283 (Resolution: Added test for mesh/sculpties in native shapes so it didn't think it was a box) 272 (Resolution: Added test for mesh/sculpties in native shapes so it didn't think it was a box)
284llMoveToTarget (Resolution: added simple motor to update the position.) 273llMoveToTarget (Resolution: added simple motor to update the position.)
274Angular motor direction is global coordinates rather than local coordinates (DONE)
275Add vehicle collisions so IsColliding is properly reported. (DONE)
276 Needed for banking, limitMotorUp, movementLimiting, ...
277 (Resolution: added CollisionFlags.BS_VEHICLE_COLLISION and code to use it)
278VehicleAddForce is not scaled by the simulation step but it is only
279 applied for one step. Should it be scaled? (DONE)
280 (Resolution: use force for timed things, Impulse for immediate, non-timed things)
281Complete implemention of preStepActions (DONE)
282 Replace vehicle step call with prestep event.
283 Is there a need for postStepActions? postStepTaints?
284Disable activity of passive linkset children. (DONE)
285 Since the linkset is a compound object, the old prims are left lying
286 around and need to be phantomized so they don't collide, ...
287Remove HeightmapInfo from terrain specification (DONE)
288 Since C++ code does not need terrain height, this structure et al are not needed. \ No newline at end of file