aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt')
-rwxr-xr-xOpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt60
1 files changed, 33 insertions, 27 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt
index 29bd4e4..59cbab9 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]
@@ -178,6 +170,8 @@ Avatar attachments have no mass? http://forums-archive.secondlife.com/54/f0/3179
178 170
179INTERNAL IMPROVEMENT/CLEANUP 171INTERNAL IMPROVEMENT/CLEANUP
180================================================= 172=================================================
173Can the 'inTaintTime' flag be cleaned up and used? For instance, a call to
174 BSScene.TaintedObject() could immediately execute the callback if already in taint time.
181Create the physical wrapper classes (BulletBody, BulletShape) by methods on 175Create the physical wrapper classes (BulletBody, BulletShape) by methods on
182 BSAPITemplate and make their actual implementation Bullet engine specific. 176 BSAPITemplate and make their actual implementation Bullet engine specific.
183 For the short term, just call the existing functions in ShapeCollection. 177 For the short term, just call the existing functions in ShapeCollection.
@@ -197,22 +191,19 @@ Generalize Dynamics and PID with standardized motors.
197Generalize Linkset and vehicles into PropertyManagers 191Generalize Linkset and vehicles into PropertyManagers
198 Methods for Refresh, RemoveBodyDependencies, RestoreBodyDependencies 192 Methods for Refresh, RemoveBodyDependencies, RestoreBodyDependencies
199 Potentially add events for shape destruction, etc. 193 Potentially add events for shape destruction, etc.
200Complete implemention of preStepActions 194Better mechanism for resetting linkset set and vehicle parameters when body rebuilt.
201 Replace vehicle step call with prestep event. 195 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) 196Implement linkset by setting position of children when root updated. (LinksetManual)
204 Linkset implementation using manual prim movement. 197 Linkset implementation using manual prim movement.
205LinkablePrim class? Would that simplify/centralize the linkset logic? 198LinkablePrim class? Would that simplify/centralize the linkset logic?
206BSScene.UpdateParameterSet() is broken. How to set params on objects? 199BSScene.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 200Add floating motor for BS_FLOATS_ON_WATER so prim and avatar will
210 bob at the water level. BSPrim.PositionSanityCheck(). 201 bob at the water level. BSPrim.PositionSanityCheck()
211Should taints check for existance or activeness of target? 202Should taints check for existance or activeness of target?
212 When destroying linksets/etc, taints can be generated for objects that are 203 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 204 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. 205 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? 206 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) 207Parameters 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'? 208Can some of the physical wrapper classes (BulletBody, BulletWorld, BulletShape) be 'sealed'?
218There are TOO MANY interfaces from BulletSim core to Bullet itself 209There are TOO MANY interfaces from BulletSim core to Bullet itself
@@ -282,3 +273,18 @@ Redo BulletSimAPI to allow native C# implementation of Bullet option (DONE)
282Meshes rendering as bounding boxes (DONE) 273Meshes rendering as bounding boxes (DONE)
283 (Resolution: Added test for mesh/sculpties in native shapes so it didn't think it was a box) 274 (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.) 275llMoveToTarget (Resolution: added simple motor to update the position.)
276Angular motor direction is global coordinates rather than local coordinates (DONE)
277Add vehicle collisions so IsColliding is properly reported. (DONE)
278 Needed for banking, limitMotorUp, movementLimiting, ...
279 (Resolution: added CollisionFlags.BS_VEHICLE_COLLISION and code to use it)
280VehicleAddForce is not scaled by the simulation step but it is only
281 applied for one step. Should it be scaled? (DONE)
282 (Resolution: use force for timed things, Impulse for immediate, non-timed things)
283Complete implemention of preStepActions (DONE)
284 Replace vehicle step call with prestep event.
285 Is there a need for postStepActions? postStepTaints?
286Disable activity of passive linkset children. (DONE)
287 Since the linkset is a compound object, the old prims are left lying
288 around and need to be phantomized so they don't collide, ...
289Remove HeightmapInfo from terrain specification (DONE)
290 Since C++ code does not need terrain height, this structure et al are not needed. \ No newline at end of file