User:Andrew Linden/Office Hours/2008 06 05

From Second Life Wiki
Jump to navigation Jump to search

Transcript of Andrew Linden's office hours:

[17:00] Sheet Spotter: Allo, allo
[17:00] Sindy Tsure: hiyas!
[17:00] Andrew Linden: Hello Sheet
[17:00] Sindy Tsure: how are we tonight?
[17:01] Sheet Spotter: Hmmm..."Crash Me" has been missing in action for about a day.
[17:01] Andrew Linden: things are going just fine today... except for Crash Me :-)
[17:01] Andrew Linden: I'll take a look...
[17:01] Sindy Tsure doesn't know Crash Me.. er... ?
[17:02] Sheet Spotter: It's a sim where people are encouraged to test objects that may cause a sim crash.
[17:02] Sindy Tsure: ooooo
[17:02] Andrew Linden: Hrm... Crash Me is currently disabled.
[17:02] Sindy Tsure: hi ella
[17:02] Sindy Tsure: *ellla
[17:02] Sheet Spotter: They are asked to provide details on any crashes.
[17:03] Sindy Tsure: sounds like a good idea!
[17:03] Sindy Tsure: er..
[17:03] Ellla McMahon: Hello Andrew ... everyone :)
[17:03] Sheet Spotter: G'day eh!
[17:03] Sindy Tsure was hoping to get SVC-1479 on the agenda tonight, if there's room
[17:04] Andrew Linden: Dan Linden manages that region.
[17:04] Andrew Linden: He says it was running slow and he couldn't TP there, so he brought it down.
[17:04] Sheet Spotter: Cool. I've been waiting to test something there alll week. It's always been in use.
[17:05] Andrew Linden: someone lagged it to death
[17:05] Sheet Spotter: No rush really.
[17:05] Andrew Linden: but there was a memory leak bug that was causing some regions to take up too much memory
[17:05] Andrew Linden: and the fix for that is only halfway deployed today
[17:05] Sindy Tsure saw the sticky hover bug was squashed, too!
[17:06] Andrew Linden: so I guess it makes sense to shut down "Crash Me" until the fix is totally deployed
[17:06] Andrew Linden: btw, the fix for Darling Brody's crystal cage is in the fixed version that is in the middle of being deployed
[17:07] Sindy Tsure: hi hi, simon
[17:07] Simon Linden: hi
[17:07] Andrew Linden: that is, the fix for the crash mode that was tickled by Darling Brody's crystal cage...
[17:08] Sindy Tsure: wb, ellla
[17:09] Andrew Linden: so sindy, are you a scriptor for hire?
[17:09] Sindy Tsure: lol.. not really.. i just thought it'd be a good group title :)
[17:10] Ellla McMahon: thanks :)
[17:10] Sindy Tsure detaches the silly "drop stuff on people for saying things" object
[17:10] Andrew Linden: I was under the impression that good scripters that had free time were hard to come by these days
[17:10] Sindy Tsure doesn't really follow the market!
[17:11] Sindy Tsure: i guess i can see that, tho.. the good ones usually make stuff up to keep busy if they have nothing to do
[17:11] Sindy Tsure: only so much of a break you can take before the urge to code strikes :)
[17:11] Andrew Linden: so the reason I was curious was to find out how easy you were finding it to find work to pay for your shoes ;-)
[17:12] Sindy Tsure: hey, good shoes are expensive!
[17:12] Sindy Tsure points to her L$1k boots
[17:12] Andrew Linden: I wonder if this region has the fixed simulator that is still being deployed...
[17:12] Sindy Tsure: silly prices, really
[17:12] Sindy Tsure: says 1.22.1.. that's last weeks, right?
[17:13] Sheet Spotter: Yes, that's the old server.
[17:13] Simon Linden: Second Life Server 1.22.1.88473
[17:13] Andrew Linden: yeah, the new one is 1.22.2 something
[17:13] Sheet Spotter: Is there a contingency if the meeting is interrupted by a rolling restart?
[17:13] Andrew Linden: Well the hover drift bugs (up and down) are fixed in 1.22.2
[17:13] Sindy Tsure: andrew & simon go to the lab and beat up prospero if that happens!
[17:13] Simon Linden: Sindy - did you ever talk with Andrew about the llMoveToTarget() bug?
[17:13] Andrew Linden: No contigency. Let's cross our fingers and hope it doesn't happen.
[17:13] Sindy Tsure: nope!
[17:14] Andrew Linden: What is the bug?
[17:14] Sindy Tsure: there's actually two.. one i have a test case for and the other i was hoping to get some feedback on..
[17:14] Simon Linden: Andrew - it's bascially due to the fact we add anti-gravity if the target is going up, but not if it's going down
[17:14] Simon Linden: Going on a sloped path downwards, it sags
[17:14] Sindy Tsure: that's http://jira.secondlife.com/browse/SVC-2441
[17:15] Simon Linden: I think the trouble here is that changing it might break some old content
[17:15] Sindy Tsure: easier to see than explain, i thought
[17:15] Andrew Linden: ah, I see yes
[17:16] Andrew Linden: No, I get it from the bug description.
[17:16] Sindy Tsure: k!
[17:16] Simon Linden: I think the real (and more fun) fix is a new function - always apply the anti-gravity, and add some controls for the acceleration and end tapering off
[17:16] Andrew Linden: Heh, that is a cool demo of the bug.
[17:16] Andrew Linden: Can I have it?
[17:16] Sindy Tsure: ty
[17:16] Sindy Tsure gave you llMoveToTarget test.
[17:17] Andrew Linden: it is always easiest to fix/test a bug fix when you have such a simple demonstration of it.
[17:17] Andrew Linden: I'll try to fix that before next week.
[17:17] Sindy Tsure: after we talked last week, simon, i noticed that the problem gets far less as the speed increases
[17:17] Sindy Tsure: i've worked around where it was biting me by just speeding things up.. much better now
[17:17] Simon Linden: That makes sense - less time for gravity to make it drop down
[17:17] Andrew Linden: right
[17:17] Sindy Tsure: :)
[17:18] Andrew Linden: There were two bugs?
[17:18] Andrew Linden: What was the second?
[17:18] Sindy Tsure: the other one was just one i was hoping for comments on.. http://jira.secondlife.com/browse/SVC-1479
[17:18] Simon Linden: Also, if you make two of those, and have one go up, one down, you'll see the speed it takes is different
[17:18] Sindy Tsure: oh! i hadn't noticed that, simon!
[17:18] Simon Linden: They can get a little confused about the target sometimes
[17:18] Andrew Linden: Ah, that one is a feature request.
[17:19] Sindy Tsure nods
[17:19] Andrew Linden: Yes, I've also been thinking about some features along those lines.
[17:19] Sindy Tsure: oh?
[17:19] Sindy Tsure: that's good! at the least it means you don't hate the idea
[17:20] Andrew Linden: The feature I was thinking about would be one where you could animate "static" objects to make them move in some programmed way.
[17:20] Andrew Linden: Such as a sliding door, or even a rotating one.
[17:20] Sindy Tsure: there's been a forums discussion on it.. people seem almost offended at the suggestion
[17:20] Sindy Tsure doens't quite get that
[17:20] Andrew Linden: Perhaps with simple uniform linear motion behavior as an option.
[17:21] Sindy Tsure had sorta pictured ease-in and ease-out type options, similar to starting/stopping animations
[17:21] Andrew Linden: Well, right now there are two types of objects... I use the terms "dynamic" and "static", although the stupid UI uses a "[x] physics" checkbox to distinguish the two.
[17:22] Simon Linden: Someone mentioned they also wanted to remove the tapering off of motion .... were using it to move an object along a path, and had to extend the end-point beyond their real target so it wouldn't slow. When it gets near one point, they shift to the next one and can make it follow a route
[17:22] Sindy Tsure: that's my use-case!
[17:22] Andrew Linden: right, an ease in and out behavior would also be nice
[17:22] Sindy Tsure is working on an object that follows about 30 points..
[17:22] Simon Linden: Ah, it was you then ... memory loss one more time :)
[17:22] Sindy Tsure: :)
[17:23] Andrew Linden: I was hoping to make the feature generalized somehow, so scripters could pick from vaious movement styles
[17:23] Andrew Linden: perhaps a bouncy motion would also be cool
[17:23] Andrew Linden: but the idea was... allow the objects to remain "static" (physics off)
[17:23] Andrew Linden: but still move
[17:23] Sindy Tsure: oh!
[17:23] Sindy Tsure: even better!
[17:24] Sindy Tsure: er.. i think..
[17:24] Andrew Linden: turns out that the Havok physics engine can handle that case just fine
[17:24] Andrew Linden: and the moving objects will bump and push other objects... if they happen to be dynamic
[17:24] Sindy Tsure: so.. physics-like smoothness without collisions & gravity?
[17:24] Andrew Linden: right
[17:24] Sindy Tsure drools
[17:25] Andrew Linden: one of the problems with such a feature is that such motion (called "keyframed") can sometimes pump energy into the system
[17:25] Andrew Linden: and the motion cannot be stopped... so if you get a dynamic object being sqeezed between two keyframed objects then penetrations must happen... the keyframed objects won't collide and stop
[17:25] Sindy Tsure pictures a carbon-footprint trading system in sl
[17:25] Simon Linden: So collisions won't affect these objects?
[17:26] Andrew Linden: collisions will affect them
[17:26] Andrew Linden: so for example you could make a conveyor belt
[17:26] Andrew Linden: and you could put dynamic objects on top of the keyframed platform
[17:26] Andrew Linden: and the dynamic object would move with the platform
[17:26] Sindy Tsure: via friction?
[17:26] Andrew Linden: or would be pushed by it if you put the dynamic object in its path
[17:27] Andrew Linden: yes, via friction and collisions
[17:27] Andrew Linden: however, the keyframed object would behave as if it had infinite mass, and an infinite force pushing it
[17:27] Simon Linden: If you had a box in this state moving along, and a sphere collided with it, would the box move due to the collision, or just the sphere?
[17:28] Andrew Linden: another possibility would be to make a smoothly rotating keyframed door, or turntable
[17:28] Andrew Linden: if you put stuff on the table or in the door they would be pushed along
[17:28] Sheet Spotter: A catapult might be another example, but that would regular angular forces.
[17:29] Andrew Linden: simon, only the sphere would react from the collision, the keyframed box would continue to move along its animated movement
[17:29] Simon Linden: Some moron would make some really effective griefer objects from this - pushing other stuff. Steamroller from hell
[17:29] Andrew Linden: right
[17:29] Simon Linden: But it would be a cool feature, could make a lot of good things
[17:29] Sindy Tsure scratches out her steamroller note idea
[17:30] Andrew Linden: so that is one of the ideas I'd like to work on
[17:30] Andrew Linden: however it is kinda waiting for Babbage Linden to get MONO up and running
[17:30] Sindy Tsure drools again
[17:30] Andrew Linden: since we don't really want to add many more features to the LSL engine until it gets the merge from all the work that Babbage has done.
[17:30] Sindy Tsure: supposed to be this month maybe, last i heard :)
[17:30] Sheet Spotter ponders SL's largest ever bowling ball.
[17:31] Sindy Tsure: and pins, sheet!
[17:31] Andrew Linden: There are a number of not-too-hard features that are waiting for MONO to settle.
[17:32] Sindy Tsure: any speculation on if LSL will grow some after MONO has calmed down? always wanted switch/case..
[17:32] Andrew Linden: Hrm... it would be cool if you could program keyframed motion on objects without a script.
[17:33] Andrew Linden: That is, via a UI interface, and an object contents asset that just loops, or maybe is a one-off. Hrm...
[17:33] Simon Linden: "Without a script" usually means a lot of UI work
[17:33] Sindy Tsure has a hard time picturing it
[17:33] Andrew Linden: Yeah, but what if the keyframed sequence was like its own program... an set of animation calls
[17:33] Andrew Linden: then the LSL could just invoke these little animations by the name of the asset in the contents
[17:34] Andrew Linden: it would make the LSL interface really simple
[17:34] Sindy Tsure: that almost sounds like 1/2 the needed puppeteer work..
[17:34] Andrew Linden: of course... the UI feature set would be much bigger
[17:34] Sheet Spotter: Animations have a defined set of frames, perhaps an unequal intervals, and an optional position to loop back to at the end.
[17:35] Andrew Linden: When I was a little kid... about 10 or so, there was this programmable tank/car you could buy
[17:35] Andrew Linden: and you could punch in a series of instructions
[17:35] Andrew Linden: and then press GO and it would go through the motions
[17:35] Andrew Linden: I'm thinking of something a little bit like that perhaps
[17:35] Sindy Tsure: hiya rex & sidewinder
[17:35] Andrew Linden: but maybe the instructions woud be in some text format
[17:35] Sidewinder Linden: hiya sindy
[17:35] Rex Cronon: hi sindy. hi everybody
[17:36] Sidewinder Linden: hey rex
[17:36] Andrew Linden: so you could just edit the asset
[17:36] Andrew Linden: hrm...
[17:36] Sheet Spotter: Kinda like the gesture editor.
[17:36] Rex Cronon: hii...
[17:36] Andrew Linden: if you could just edit the asset, then a properly formatted notecard should suffice
[17:36] Rex Cronon: just had to download the rc,
[17:37] Andrew Linden: I'll have to write this idea down, so I can revisit it later. Otherwise I'll forget.
[17:37] Rex Cronon: and now the rc connects to beta by default
[17:38] Sheet Spotter: Perhaps it connects to your last domain. I connected to the normal domain.
[17:38] Sindy Tsure too
[17:38] Simon Linden: does it? I've run into people on the beta grid in Ahren today and yesterday who were confused at why they were there
[17:38] Sidewinder Linden: the rc connects to beta by default???
[17:38] Sidewinder Linden: it doesn't for me, but maybe it holds the last grid?
[17:38] Rex Cronon: did i miss anything?
[17:39] Sindy Tsure: mine didn't.. i don't have that enabled, though.. ctrl-alt-g or something?
[17:39] Sidewinder Linden: right
[17:39] Sidewinder Linden: it adds a target grid drop-down
[17:39] Andrew Linden: Rex, that hover drift bug is fixed in 1.22.2 Server
[17:39] Andrew Linden: but it has not yet been deployed to this region
[17:39] Andrew Linden: I think the rest of the rollout happens tomorrow morning
[17:39] Rex Cronon: good
[17:40] Sindy Tsure: we were mostly talking about llMoveToTarget stuff.. a bug I added, a new feature i'd like to see, and some stuff that andrew's been schemeing
[17:41] Sidewinder Linden: i'll be curious to see if anyone else sees a performance difference on this build... one of the really heavy load regions is reporting notably better steady state performance. i'm sure that won't hold for everyone but it's nice to see.
[17:41] Andrew Linden: heh Rex, you can always read the transcripts...
[17:41] Sidewinder Linden: hehe scheming eh? :)
[17:41] Andrew Linden: although I tend to take a day or two to save the transcripts
[17:41] Sindy Tsure: :)
[17:41] Sindy Tsure: all good stuff, sidewinder.. not a coup or anything :)
[17:41] Rex Cronon: i am quite sure that u haven't posted the trascript yet:)
[17:41] Sheet Spotter: I was just preparing a notecard so he could play catch up. :-)
[17:42] Sidewinder Linden: haha sindy
[17:42] Sindy Tsure: i don't want to eat the whole hour but i had one more thing. it can wait if somebody else has something, tho
[17:43] Rex Cronon: thank you
[17:43] Andrew Linden: I guess pie-in-the-sky brainstorming is worthwile... there is the possibility that we'll come up with something clever
[17:43] Andrew Linden: Go ahead and mention it Sindy. I don't have an agenda.
[17:44] Rex Cronon: i don'
[17:44] Rex Cronon: don't have anything
[17:44] Sindy Tsure: i've got an object that gets sat on then llMoveToTarget's to a series of positions
[17:44] Sindy Tsure: when it gets to the end, it unsits the avatar
[17:44] Sidewinder Linden: another unsit bug?
[17:44] Sindy Tsure: this is working great except the end bit - the avatar tends to get thrown pretty hard
[17:45] Sindy Tsure has gone thru walls and ban lines and ended up 1/2 across the next region
[17:45] Andrew Linden: the throw is a result of the avatar penetrating another object, probably the seat
[17:45] Sidewinder Linden: that sounds "eerily familiar" :)
[17:45] Simon Linden: That's a pretty good throw
[17:45] Sindy Tsure: the moving object is phantom and i've tried to make everything else nearby phantom
[17:45] Andrew Linden: the physics engine has a penetration resolution algorithm built into its "solver"
[17:45] Andrew Linden: yeah, penetration resolution can be pretty explosive
[17:45] Sindy Tsure: any suggestions on how to lessen this? turn off physics before unsitting? move slower? stop? anything?
[17:46] Andrew Linden: depends on the object shape and the physics engine
[17:46] Andrew Linden: I've seen more explosive engines than Havok4 though
[17:46] Sindy Tsure: even on phantom objects?
[17:46] Andrew Linden: Sindy, there are ways to specify where the avatar unsits... I think you have to move the avatar to a new position to do it.
[17:47] Sindy Tsure: hm...
[17:47] Andrew Linden: I haven't actually written an LSL script that does it, but whatever the call is for moving a sub-prim of a linked object is probablyi what you want
[17:47] Rex Cronon: could rezzing a hollow sphere around avatar work?
[17:47] Sindy Tsure: move it away from the moving object?
[17:47] Andrew Linden: you just have to figure out the sub-prim index of the avatar
[17:47] Sheet Spotter: llSetLinkPrimitiveParams
[17:47] Andrew Linden: but that is easy... it should be num_prims_in_seat + 1
[17:48] Sindy Tsure: actually, there's an llDie right after the unsit
[17:48] Andrew Linden: hrm... have you tried calling llDie() and no unsit?
[17:48] Andrew Linden: I wonder what happens then.
[17:48] Sindy Tsure: er.. maybe?
[17:48] Sindy Tsure will try it, though
[17:48] Andrew Linden: I'd expect that to work pretty well, it should just unsit the avatar.
[17:49] Andrew Linden: The object isn't moving when the avatar unsits is it?
[17:49] Sindy Tsure: it is moving!
[17:49] Andrew Linden: That is, it has reached a state of rest?
[17:49] Sindy Tsure: not very fast - maybe 10m/second or so
[17:49] Andrew Linden: You want the avatar to have zero velocity when it unsits?
[17:49] Sindy Tsure: hm.. would rather it kept moving, if possible
[17:50] Andrew Linden: Ah
[17:50] Sindy Tsure: i can try it after stopping.. that'd be a small change
[17:50] Andrew Linden: well I *think* unlinking a piece of a moving object gives those pieces the same velocity as the moving one
[17:50] Sindy Tsure: but not my preference
[17:50] Andrew Linden: so in this case the llDie() seems like the right thing to try
[17:50] Andrew Linden: but I can't give a guarantee that it will work just right.
[17:51] Sindy Tsure will give it a try!
[17:51] Simon Linden: I'm trying to follow the code ... it looks like we attempt to give the AV the velocity they had from the sit object when they are un-sat
[17:51] Andrew Linden: Hrm... you could also try setting the seat phantom right before you unsit the avatar
[17:51] Sindy Tsure: the seat is phantom from the start..
[17:51] Simon Linden: Does it look like the AV is inside any object at that time?
[17:51] Andrew Linden: then the avatar shouldn't collide and the penetration resolver won't have to do anything
[17:51] Andrew Linden: uh... hrm
[17:51] Sindy Tsure: that's the effect i'd like, simon.. the avatar seems to get FAR more, though
[17:52] Sindy Tsure: the AV is probably inside the object.. it's just a poseball that goes invisible when somebody sits on it
[17:52] Andrew Linden: Well, give me a copy of the object, or a demo object and I'll look at it.
[17:52] Sheet Spotter: Is the mass of the object large? Perhaps the inertia (?) of the object and the avatar are being applied to the avatar.
[17:52] Andrew Linden: Also... file a jira if you could, so i'm less likely to forget about it.
[17:52] Sindy Tsure: k! i'll try to put something together this weekened
[17:53] Sindy Tsure: it's just a .25 sphere, sheet
[17:53] Sindy Tsure: should be pretty low-mass
[17:53] Andrew Linden: No Sheet, that shouldn't be happening. Momentum is not conserved in this physics engine
[17:54] Sindy Tsure: you said when an unlink happens, the velocity gets applied to all the pieces?
[17:54] Simon Linden: To the avatar
[17:54] Andrew Linden: I *think* so. The unlinked pieces should pick up the same velocity as the original object.
[17:54] Sindy Tsure: oh! i've got a demo already..
[17:54] Sindy Tsure: siggy's waterslides
[17:54] Sindy Tsure drops one
[17:55] Sheet Spotter: Road trip!
[17:55] Andrew Linden: Uh oh... rumor has it that Siggy can't be found these days.
[17:55] Sindy Tsure nods
[17:55] Sindy Tsure tries it out
[17:55] Andrew Linden: If he has another bit of buggy content, it is likely that it can't be fixed.
[17:55] Andrew Linden: er... can't be modified
[17:55] Andrew Linden: if there is a real bug I can fix that
[17:56] Andrew Linden: ... I hope
[17:56] Sidewinder Linden: is this waterslide "sticking"... or doing something else?
[17:56] Simon Linden: That didn't look too bad
[17:56] Sidewinder Linden: i've not heard of these
[17:57] Andrew Linden: I think this was a bit of content that Sindy was trying to make, and was having complications.
[17:57] Sidewinder Linden: ahh
[17:57] Sindy Tsure: hm..
[17:58] Andrew Linden: what did you find?
[17:58] Sindy Tsure: mostly that i can't repro it on demand
[17:58] Sindy Tsure will try to figure out a test case
[17:58] Andrew Linden: ok
[17:58] Andrew Linden: I think someone opened a bug about some phantom objects colliding with avatars sometimes
[17:58] Sindy Tsure: unless you want a "this sometimes doesn't work and i don't know why" bug?
[17:59] Andrew Linden: I wonder if this would be related to that
[17:59] Andrew Linden: well, if the object can reproduce the problem with about 10% success rate then that shouldn't be too hard to use for debuggin
[18:00] Andrew Linden: that is, 10% is an acceptible reliability in many cases to consider it "easy to reproduce"
[18:00] Sindy Tsure nods
[18:00] Sindy Tsure: i think i can probably come up with something
[18:01] Andrew Linden: Well, the hour is about up.
[18:01] Sindy Tsure: i have an object at home that does it but it's fairly big.. i'll try to cut it down
[18:01] Andrew Linden: Anyone else have some topics before we adjourn the meeting?
[18:01] Sindy Tsure doesn't
[18:01] Rex Cronon: no
[18:02] Andrew Linden: Alright, well I'm glad I have these hours. I like the idea of the programmable keyframe motion feature.
[18:02] Andrew Linden: I'll think about it some more.
[18:02] Sindy Tsure too!
[18:02] Sheet Spotter: Thank you for this hour, Andrew.
[18:02] Ellla McMahon: Thank you Andrew & Simon :)
[18:02] Sindy Tsure nods! ty Andrew & Simon & Sidewinder!!
[18:02] Andrew Linden: Thank you for attending.
[18:02] Simon Linden: hmm, that was a pretty impressive unsit leap
[18:03] Rex Cronon: bye everybody
[18:03] Sindy Tsure: cya, rex
[18:03] Simon Linden: I think those are the interpenetration on the tabel
[18:03] Sindy Tsure: bye, all!
[18:03] Rex Cronon: i have to go
[18:03] Simon Linden: bye
[18:03] Sidewinder Linden: bye all