User:Andrew Linden/Office Hours/2008 12 16

From Second Life Wiki
Jump to navigation Jump to search

Transcript of Andrew Linden's office hours:

[11:02] Rex Cronon: i don't see anybody around me
[11:02] Kitto Flora: Hello Andrew
[11:03] Kitto Flora: Av visibility is a bit flaky these days
[11:03] Rex Cronon: so don't get mad if i step on your tail:)
[11:03] Andrew Linden: hi
[11:03] Rex Cronon: hi
[11:03] Andrew Linden: sheet spotter, you mic is on and we can hear you typing.
[11:04] Sheet Spotter: Thank you kind sir.
[11:04] Andrew Linden: No big deal, but this meeting is held in text chat
[11:04] Andrew Linden: so we can publish the transcript easily
[11:04] Sheet Spotter: Two mute buttons, and I still manage to screw it up. :-(
[11:04] Andrew Linden: Alright... announcements...
[11:05] Andrew Linden: 1.25 is still a work in progress
[11:05] Andrew Linden: there are two blockers
[11:05] Andrew Linden: I think progress has been made on one
[11:05] Andrew Linden: but the other I haven't heard any news
[11:06] Andrew Linden: The release team is getting desperate. Actually they've been desperate for a month now.
[11:06] Kitto Flora: This is not new
[11:06] Andrew Linden: Alas it is true.
[11:06] Kitto Flora: They've had such problems before
[11:07] Andrew Linden: Kitto, were you able to help Neil Robinson last week?
[11:07] Kitto Flora: Yes- serendipitously.
[11:07] Andrew Linden: ok good
[11:07] Kitto Flora: But I have not heard the outcome
[11:08] Kitto Flora: I talked to him after the meet on what might be done
[11:08] Andrew Linden: he claimed to have a budget, although a small one
[11:08] Kitto Flora: The next day or so I met a customer who happens to make HUDs and hacks on the client for special controls!
[11:08] Kitto Flora: So I put them in touch.
[11:09] Andrew Linden: I thought maybe you would find a small market for your trains and vehicles.
[11:09] Andrew Linden: new market
[11:09] Kitto Flora: MAybe - when they build up some land
[11:10] Kitto Flora: But there are other 'guided tours' that may be more in line with what they want
[11:10] Andrew Linden: ok cool, I hope he manages to help his students out
[11:11] Andrew Linden: uh... I don't have much else on my agenda
[11:11] Andrew Linden: Pehaps Simon has some news.
[11:12] Simon Linden: Not really much ... I have started on a draft proposal for a new flavor of llMoveToTarget(), but it's still only a few paragraphs at this point
[11:12] Simon Linden: Haven't even reached the point to get Andrew to read it :)
[11:12] Kitto Flora: One with a constant velocity?
[11:12] Simon Linden: Right - I want to be able to set all the appropriate parameters
[11:13] Simon Linden: velocity, fade in/out, etc
[11:13] Kitto Flora: Is all that actually done in the client?
[11:13] Simon Linden: No, it's all server-side
[11:13] Kitto Flora: Really? So the server is sending many position updates to client?
[11:14] Simon Linden: So actually, if there are any suggestions here, I'd love to hear them
[11:14] Andrew Linden: Simon, perhaps you could outline the scope of the feature idea for us again?
[11:14] Simon Linden: I can think of velocity, the ramp up time, braking time, and perhaps the tolerance at the end of when to consider it 'done'\
[11:14] Simon Linden: Well, it's basically llMoveToTarget(), which now pushes objects towards a point
[11:15] Kitto Flora: So it kinda includes 'target' ?
[11:15] Patnad Babii: hello everyone :)
[11:15] Rex Cronon: hi
[11:15] Andrew Linden: Hi Patnad
[11:15] Simon Linden: We currently imlement this by pushing objects - applying a physical force - every frame
[11:15] Simon Linden: Hi Patnad
[11:15] Simon Linden: The current code gives you a period of acceleration, normal speed, then slows down as you approach the end point
[11:16] Simon Linden: This works OK if you just want to go from A to B
[11:16] Simon Linden: But if you want (like Kitto's trains) to change direction when you get to B, you don't want it to slow down
[11:16] Andrew Linden: No, the current code uses a "critically damped" model to get you there.
[11:17] Simon Linden is glossing over a lot of details :)
[11:17] Andrew Linden: That is, the current model is exponential decay toward target position.
[11:17] Andrew Linden: But yeah, a constant velocity mode would be nice
[11:17] Simon Linden: ah, right, so no acceleration at the start
[11:17] Kitto Flora: Exactly
[11:17] Andrew Linden: no, great acceleration at start
[11:17] Kitto Flora: The present is visibly exponential decay
[11:17] Andrew Linden: the speed depends on the separation distance only
[11:18] Simon Linden: I mean no controlled acceleration at the start, like a train moving slow and gradually getting faster
[11:18] Andrew Linden: ah yes
[11:18] Andrew Linden: how many modes of movement are you thinking of Simon?
[11:18] Andrew Linden: 1 = constant velocity
[11:18] Kitto Flora: I think just seetting the velocity would be a 90% solution
[11:19] Kitto Flora: The steam train has no change in acceleration at the start. It just starts moving at velocity.
[11:20] Kitto Flora: And no one has ever complained
[11:20] Andrew Linden: A three speed curve... fast acceleration, uniform speed, fast deceleration woudl make some movements appear smooth
[11:20] Kitto Flora: People dseem not to notice
[11:20] Kitto Flora: Andrew: True. But may be overkill
[11:20] Simon Linden: Well, you can have better dramatic farewell scenes at the station if it starts slow and speeds up :)
[11:21] Andrew Linden: if the feature takes a "mode" argument then it would be easier to enhance later with new modes
[11:21] Simon Linden: yes, I think startup acceleration, ending acceleration, and middle constant speed cover most cases
[11:21] Kitto Flora: It would
[11:21] Andrew Linden: I can't think of any other modes right now
[11:21] Simon Linden: ... with any phase possibly being 0 seconds in length
[11:21] Patnad Babii: that would be integrated as LSL function or could it be added as part of the client too ?
[11:22] Kitto Flora: Does that make it more complicated to implement thhough?
[11:22] Simon Linden: This would be LSL server-side, an expansion of llMoveToTarget()
[11:22] Andrew Linden has an idea on how to make it work for static objects
[11:22] Simon Linden: I don't think it's too difficult, it seems like a pretty well contained problem
[11:23] Simon Linden: hmm, for static objects? They won't seem very static then
[11:23] Patnad Babii: oh right, could be interesting to see more physic inside the viewer.. you know so that people can set stuff easily
[11:23] Kitto Flora: (static = non PHYSICAL)
[11:23] Andrew Linden: well, for lack of a better term... "non-physical"
[11:23] Simon Linden: ah, right, gotta get back into the Havok lexicon
[11:23] Rex Cronon: aka NP:)
[11:23] Andrew Linden: in truth, they are actually "keyframed" objects in the Havok4 physics engine.
[11:24] Andrew Linden: sigh... to add a feature. That would be cool.
[11:24] Andrew Linden: To ship 1.25... that would be great.
[11:24] Patnad Babii: sure a timeline inside the viewer to program stuff
[11:24] Kitto Flora: It would likley be more useful if this new function worked on both physical and non-p objects
[11:24] Simon Linden: So it's all just an idea at this point, but the next steps are to discuss it like we're doing, then write something up that describes it well, which hopefully people at LL will read and say "yes, that's a good idea and pretty simple, so let's do it"
[11:25] Andrew Linden: So Simon, you're going to present it to the "House of Reason" before you wok on it?
[11:25] Simon Linden: A viewer UI to edit this kind of thing would be great, but also a ton of work
[11:25] Rex Cronon: so, will 1.25 be here after christmas?
[11:25] Andrew Linden: Rex, I don't know.
[11:26] Simon Linden: I'm first going to write up an internal wiki page / specification for it ... we'll see where to go from there
[11:26] Kitto Flora: Whats the need for a Viewer UI for that?
[11:26] Simon Linden: It seems pretty small for a full committee review
[11:26] Patnad Babii: i see SL as an multi user 3D modeler, would be definitly great if it had animation feature built0in
[11:26] Patnad Babii: built-in*
[11:26] Andrew Linden: Yeah, if it goes before the house of reason then I think it should do so in demo form
[11:27] Andrew Linden: that is, we should have a working demo and then say "we'd like to ship this"
[11:27] Simon Linden: We may be able to bundle a few things into a mini-project of 'make stuff work better', including the shape work I did, for example
[11:27] Andrew Linden: The "House of Reason" is an internal committee in LL that can be approached to get an OK seal of approval for a project, if you think you need it.
[11:28] Kitto Flora: Having a demo proves implementation is not a problem :)
[11:28] Andrew Linden: Well... what about a rotational equivalent?
[11:28] Kitto Flora: Humm
[11:29] Kitto Flora: Having a rotational eq. may alow curved turns
[11:29] Simon Linden: Hmm, that's interesting, I haven't thought of it but certainly can see the need
[11:29] Kitto Flora: BUT I'm not at all convinced of the useful ness of them
[11:29] Andrew Linden: Should the rotation of the object be locked while it moves in the linear mode (for P objects) ?
[11:30] Kitto Flora: Mainly because to make a curved turn well one must match velocity and rotation, and I think LSL cant do that well enough
[11:30] Andrew Linden: What if there were a linear mode that enforced the object always pointed forward, no matter what it's velocity direction?
[11:30] Kitto Flora: Er
[11:31] Kitto Flora: BAd
[11:31] Kitto Flora: Limiting
[11:31] Andrew Linden: Useful, I would imagine.
[11:31] Andrew Linden: It would do exactly what you want for a train following a track.
[11:31] Simon Linden: I think for physical objects you'd want to let them rotate as the engine simulates
[11:32] Simon Linden: Kitto, are your trains physical objects?
[11:32] Kitto Flora: No - cause one wants to go someplace. So one uses llLookAt() and that rotates the object to go towards the lookat target
[11:32] Kitto Flora: Simon: yes
[11:32] Andrew Linden: Not a train that is on a track... you don't want it to tumble when something hits it.
[11:32] Kitto Flora: I have many line of code to deal with hits
[11:32] Simon Linden: Does llLookAt() do the job well?
[11:33] Kitto Flora: Yes
[11:33] Andrew Linden: All those lines could be eliminated with a "always point forward" motion.
[11:33] Kitto Flora: Lookat points the train at the next waypoint
[11:33] Andrew Linden: Although... there would haveto be an exception for going in reverse.
[11:33] Kitto Flora: and the liear motor pushes it there
[11:33] Kitto Flora: linear
[11:33] Simon Linden: We do have the ability to pin an object's rotation around various axis, but that's pretty funky these days
[11:33] Kitto Flora: I never found the pinning useful
[11:34] Andrew Linden: The current vehicle code has some symmetry handling for forward and reverse velocities.
[11:34] Kitto Flora: The rotational friction does well
[11:34] Kitto Flora: The train goes in reverse ok, I forget how I do the lookat though
[11:35] Kitto Flora: the liner motor uses -ve velocity
[11:35] Kitto Flora: That the train
[11:35] Kitto Flora: The swan and boat both do curved turns
[11:35] Kitto Flora: USe linear and rotation motors at same time
[11:35] Kitto Flora: but the accuracy of the curve ... is poor
[11:35] Andrew Linden: ok Simon, how about a llMoveTo in an arc?
[11:36] Kitto Flora: Not good enough to fake-follow a track
[11:36] Andrew Linden: That would be a different possible motion mode
[11:36] Simon Linden: I think the train-on-a-curve is a good problem to solve, haven't thought yet about functions for it
[11:37] Andrew Linden: Such smooth motion features could be used to make better sliding/rotating doors and other objects
[11:37] Kitto Flora: A level of precision hard to meet with the current state of LSL running in the sim.
[11:37] Kitto Flora: Opening doors are a bit hokey at present
[11:38] Kitto Flora: People break up the rotation into steps to get it smoother looking
[11:38] Kitto Flora: So a constant rotation rate would be nice
[11:38] Kitto Flora: rather than the x-decay
[11:38] Simon Linden: It also needs a rotate-about-a-point option, not necessarily the object's center
[11:39] Simon Linden isn't really familiar with what we can do today
[11:39] Kitto Flora: YEah - at present one nedds to cut prims in half
[11:39] Kitto Flora: or add extra root prim
[11:39] Andrew Linden: Ok cool... now what do you think about defining a full keyframe sequence and allowing the object to loop through it.
[11:39] Simon Linden: ah, right, you put a tiny root prim at the rotation point. Crude but I guess that works
[11:40] Kitto Flora: piecewise animation of objects?
[11:40] Andrew Linden: Ooof. Piecewise animation it harder.
[11:40] Simon Linden: Well, that's pretty cool but it's a leap into a different motion model
[11:40] Kitto Flora: Wel that frame-by-frame
[11:40] Kitto Flora: The amimal animators would like it
[11:41] Kitto Flora: and it may eliminate the present high-load scripts like 'puppeteer'
[11:41] Andrew Linden: What animal animators need (and others) is object link heirarchy
[11:41] Kitto Flora: Yes - well that too
[11:41] Kitto Flora: Vehicle makers as well
[11:42] Simon Linden: yep, a real link heirarchy would be great
[11:43] Andrew Linden: ok, so Simon has a project in partial design, and not a full proposal yet.
[11:43] Patnad Babii: would be nice to be able to create object animation sequence, then save it and use script to load them at any time
[11:43] Andrew Linden: And then we've wandered into "object hierarchy" land (blue sky)
[11:44] Kitto Flora: On the current front line: Any cluse on https://jira.secondlife.com/browse/SVC-3511 ?
[11:44] Simon Linden: and I was deliberately trying to keep it small so there's a chance of it happening :)
[11:45] Simon Linden: ouch - 1 in 2000 failures?
[11:45] Kitto Flora: Roughly
[11:45] Andrew Linden: I don't have any ideas on SVC-3511. It is intermittent? Bummer
[11:45] Kitto Flora: In the last couple days, I lost 2 more railcars, while I was on line
[11:45] Andrew Linden: Hard to repro
[11:46] Andrew Linden: Hrm... I'd be interested in looking at the relevant logs
[11:46] Simon Linden: If you can identify the exact time, we might be able to look in the logs
[11:47] Andrew Linden: but to do that I'd need to know the region names, the times (as exact as possible), and the object names
[11:47] Kitto Flora: I can only say a period at present .. but
[11:47] Andrew Linden: and it must have happened within the last 7 days
[11:47] Kitto Flora: The cars take 4 mins to go around
[11:47] Kitto Flora: I can put in a logger object that records time they went past
[11:47] Andrew Linden: the hour window when it happened may suffice
[11:47] Kitto Flora: so 4 mins after lass pass is the interesting time
[11:48] Kitto Flora: I'll do that
[11:48] Andrew Linden: Anybody else have issues they want to raise?
[11:48] Andrew Linden: We've got about 12 more minutes to the hour.
[11:49] Sheet Spotter: Simon was working on a JPEG2000 server issue... http://jira.secondlife.com/browse/SVC-3146
[11:49] Andrew Linden: Kitto, put the time/location info in the bug, and then send an IM to Simon and Me
[11:49] Sheet Spotter: I was curious if that was scheduled for release.
[11:49] Kitto Flora: OK, andrew, will do
[11:49] Simon Linden: I don't think that's in 1.25, lemme check...
[11:51] Kitto Flora: If the client didnt keep chucking and redownloading textues, it could just get the whole lot every time
[11:51] Simon Linden: No, that's currently in testing with some other texture work
[11:51] Sheet Spotter: Thank you.
[11:51] Simon Linden: yeah, I've wondered about that. I sometimes think the client should just download the whole thing
[11:52] Simon Linden: That should go out with 1.26, but it's still in testing so must pass before it can get merged into our main code
[11:52] Sheet Spotter: Cool. Thanks.
[11:53] Kitto Flora: Anything new/cool on a Beta grid at present?
[11:53] Andrew Linden: No, everyone involved with deploy is fighting with the 1.25 problems
[11:53] Patnad Babii: maybe you guys can talk about the new more intuitive UI M is talking about in the blog
[11:54] Kitto Flora: Are the 1.25 problem details public?
[11:54] Sheet Spotter: CG and Prospero spoke about some of them this morning...
[11:54] Simon Linden: Both Andrew and I focus our work on the simulator, so aren't too familiar with that end of the code
[11:55] Andrew Linden: There are two bugs blocking 1.25. One is a public jira bug (sometimes avatar names not showing up in UI)
[11:55] Andrew Linden: The other is a database load problem, and was noticed internally.
[11:55] Andrew Linden: yeah Patnad, I don't know anything about a pending UI overhaul
[11:55] Patnad Babii: oh btw ever since im at this meeting i see most of the people as plasmal ball
[11:56] Patnad Babii: would be great if there was a refresh button so i can get your apperance
[11:56] Andrew Linden: If I got an email about it I would promptly delete it... I get too much email and must be aggressive about filtering my inbox.
[11:56] Simon Linden: I've heard some discussion of it since some of the people in the office here work on the viewer and UI stuff, but no details
[11:56] Patnad Babii: i see Ella and Sheet tho
[11:56] Simon Linden: Hmm, let me try re-baking textures to see if that helps
[11:56] Simon Linden: Am I a fuzz ball?
[11:56] Patnad Babii: yep
[11:56] Simon Linden: ... I've never asked anyone that, btw :)
[11:56] Kitto Flora: Changing groups often fixes it
[11:56] Patnad Babii: i see also dogtow properly
[11:57] Kitto Flora: Its an antique problem
[11:57] Simon Linden: I just re-baked textures, did that change anything?
[11:57] Patnad Babii: oh now i see you seamon
[11:57] Patnad Babii: simon sorry ehe
[11:57] Kitto Flora: There, did I appear?
[11:57] Patnad Babii: i saw you kitto briefly
[11:58] Kitto Flora: Humm
[11:58] Kitto Flora: And then vanished again?
[11:58] Patnad Babii: back to puff ball
[11:58] Kitto Flora: Wow
[11:58] Kitto Flora: A clue
[11:58] Simon Linden: Hmm, that's odd
[11:58] Patnad Babii: i see andrew now too
[11:58] Kitto Flora: How now?
[11:58] Patnad Babii: maybe it has to do that im in 3 grid at the same time lol
[11:58] Andrew Linden: ack, I need to go AFK for a few min.
[11:59] Sheet Spotter: Which viewer are you using, Patnad? (You can find the version at the top of Help, About.)
[11:59] Patnad Babii: im missing some packets
[11:59] Rex Cronon: i think i should be visible
[11:59] Patnad Babii: Second Life 1.21.6 (99587) Oct 14 2008 17:42:25 (Second Life Release)
[11:59] Patnad Babii: and hippo too
[11:59] Kitto Flora: Symptoms are its apacket loss issue, and theres nothing in the system to force a re-get
[11:59] Sheet Spotter: Are you using the "-multiple" option?
[11:59] Patnad Babii: but right now here SL viewer
[11:59] Kitto Flora: (of the Av info)
[12:00] Simon Linden: What's your connection like? If you have 3 viewers, you're probably pushing the limits and getting packet loss
[12:00] Patnad Babii: right nthing is there to re-get info
[12:00] Kitto Flora: Its - what - 3 year old problem?
[12:00] Patnad Babii: i have cable with about 1meg cap
[12:00] Simon Linden: I've been working on the server-side part of the avatar texture pipeline. There's some good work going on viewer-side to fix this
[12:00] Sheet Spotter: If you are using the "-multiple" option, only the first viewer can write to your texture cache.
[12:00] Patnad Babii: oh sweet, nice to hear progress about this issue
[12:01] Simon Linden: hmm, that's interesting about the local texture cache
[12:01] Patnad Babii: oh i see
[12:01] Kitto Flora: Viewer needs to detect case of 'I have an avatar on-screen with no data' and ask for the data again
[12:02] Patnad Babii: so its not totally a new instance of the viewer you open up
[12:02] Simon Linden: yep, it doesn't do the proper long-term error recovery
[12:02] Sheet Spotter: It is a new instance, but only the first viewer has write access to the cache.
[12:02] Simon Linden: But the 2nd or 3rd viewer can't write to the local texture cache?
[12:02] Simon Linden: That's gonna make their performance pretty bad
[12:02] Sheet Spotter: That's my understand, yes.
[12:03] Sheet Spotter: I can try to confirm that after the meeting, Simon.
[12:03] Rex Cronon: i crahsed:(
[12:03] Andrew Linden: actually, the hour is over
[12:03] Andrew Linden: and I've got to run
[12:03] Patnad Babii: uhm maybe there could be mutiple cache then for multiple viewer
[12:03] Kitto Flora: Anyone know why ... if you run HippoView, then also run SL view, the SL viewer only makanges 0.5 FPS ?
[12:03] Simon Linden: I'm not sure who would look at that, but it would be a good one to bring up with the viewer folks