User:Zero Linden/Office Hours/2007 Apr 17

From Second Life Wiki
Jump to navigation Jump to search

Transcript of Zero Linden's office hours:

[12:53] Zero Linden: nooooooo!
[12:53] Donovan Linden: hello
[12:53] Donovan Linden: no voice?
[12:54] Zero Linden: about to go to office hours, so no
[12:54] Zero Linden: and RUTH'd!
[12:54] Donovan Linden: ah
[12:54] Zero Linden: ah back
[12:54] Donovan Linden: you looked ok to me
[12:55] Wire Edman: Sorry. Don't want to blow your cover.
[12:56] Khamon Fate: Hi Zero
[12:56] Jarod Godel: Hi
[12:56] Hiro Market: hey
[12:56] Zero Linden: i'm early for once
[12:56] Wire Edman: Did I crash a meeting of some kind?
[12:56] Zero Linden: Yes - I'm about to hold office hours
[12:56] Zero Linden: or rather, "hour"
[12:57] Zero Linden: See the little easel to my left
[12:57] Wire Edman: Yes. wondered about that.
[12:57] Zero Linden: Welcome to SL, Wire - enjoying your first two weeks?
[12:57] Wire Edman: How'd you know?
[12:58] Wire Edman: And yes. I like it in here.
[12:58] Zero Linden: Right-click on someone, choose profile, and in the profile window, the upper right has the "since date"
[12:58] Zero Linden: or "born date", rather ---
[12:58] Wire Edman: Oh yeah. I saw that. Just forgot about it.
[12:59] Zero Linden: Some people say "Rez-day" -- which I like better
[12:59] Wire Edman: Yes. As in Tron.
[12:59] Zero Linden hums... "You say it's your rez-day..... And what is it to you?...."
[13:00] Wire Edman: I see you are a Linden employee.
[13:00] Zero Linden: Indeed - as are all avatars with the last name "Linden"
[13:00] Khamon Fate: You take that back!
[13:00] Zero Linden: also, the last name "Tester" is for Lindens too
[13:00] Khamon Fate: Oh, you mean Zero ha ha
[13:00] Zero Linden: Khamon -- come to the dark side --- you know you want to!
[13:00] Khamon Fate: I like to think that most Lindens have alternate avs that play in the wora'uld just like we do.
[13:01] Jarod Godel: Khamon as a Linden. scaaaary.
[13:01] Zero Linden: Khamon - I do, and you can find it by reading my 1st life profile
[13:01] Khamon Fate: Actually, I've thought about applying as a Liason when this semester if finished. I'll have more free time through the summer.
[13:01] Rex Cronon: hello everybody
[13:01] Jarod Godel: "We need more plants," he would bellow, "Forget scripting tools. Give them seeing tools!"
[13:02] Zero Linden: I suppose I should make people drop their weapons on the outside of the tent
[13:02] Wyn Galbraith: Boy was it hard to get here.
[13:02] Khamon Fate: Wull maybe I could help with Speedtree of something too. But that would take a lot of hours.
[13:02] Zero Linden: I've seen scripted seeds in SL
[13:02] Rex Cronon: don't worry zero
[13:02] Jarod Godel: No speed tree
[13:02] Wyn Galbraith: I was thing of scripting a seed.
[13:02] Jarod Godel: i hate speed tree
[13:02] Rex Cronon: i am not going to start shooting everything in sight
[13:02] Wire Edman: I'll leave you all to your meeting. Seya later.
[13:02] Jarod Godel: :-p
[13:02] Wire Edman: Oh, nice!
[13:03] Khamon Fate: Yeah the alife type projects are interesting but the sim software isn't really up to hosting it very well yet.
[13:03] Zero Linden: Later,Wire
[13:03] Rex Cronon: i just came from rausch, i was testing some bulletes, since swt is down:(
[13:03] Khamon Fate: You can stay Wire, it's a public meeting
[13:03] Wyn Galbraith had to go to Tinbuctu to get to Zero's Ground.
[13:03] Zero Linden: Indeed, Wire - it is
[13:03] Jarod Godel: What would it take for SL/LSL to be up to ALife ideal?
[13:03] Hiro Market: i had to log out and back in
[13:03] Khamon Fate: Remember when Clyde was between Rausch and Jessie
[13:03] Jarod Godel: larger memeory stacks?
[13:03] Khamon Fate: They really got bombarded
[13:04] Jarod Godel: llHTTPRequest gives them persistant storage.
[13:04] Zero Linden: Jarod - well, I know people doing A-Life and they like to milk every cycle out of their computer... so, basically it'll never be up to snuff
[13:04] Khamon Fate: Bots Jarod, we'd need bots.
[13:04] Wyn Galbraith: I did that twice, went to Zero's sandbox thinking maybe I could get here from there. Tried getting here from logging in... it was tough I started at 12:45.
[13:04] Khamon Fate: And more than 40 of them in the sim at a time.
[13:04] Wyn Galbraith loves bots.
[13:04] Jarod Godel: Khamon, we need a client API for true bots.
[13:04] Donovan Linden: I'm going to lurk
[13:05] Wyn Galbraith: Hello Donovan.
[13:05] Khamon Fate: We need flexible prims to be resized properly after they're resized by llSetPrimitiveParams()
[13:05] Khamon Fate: I mean rendered properly after they've...
[13:05] Wyn Galbraith loves meeting new Lindens :).
[13:05] Donovan Linden: flexi-prims are client side, that sounds like a bug that could be fixed in the open source client
[13:05] Donovan Linden: hi wyn
[13:06] Jarod Godel: Zero: heh, yes. A-Life types are likely the same kind of hackers who prefer C over Perl, because it gets them closer to the metal.
[13:06] Khamon Fate: Flexible prims are a feature Donovan, their proper rendering should be fixed by Linden Lab.
[13:06] Jarod Godel: Which is understandable given what they're doing.
[13:06] Jarod Godel: and that should be :assembly over C," sorry.
[13:06] Donovan Linden: Khamon: Sure, just sayin'
[13:06] Zha Ewry sits, betting the intenral IRC channel isn't quiet
[13:07] Khamon Fate: Isn't that like dividing by zero Jarod?
[13:07] Rex Cronon: hi donovan, zha
[13:07] Khamon Fate: Hey Zha
[13:07] Jarod Godel: I'm pretty sure Zero only multiplies.
[13:07] Zero Linden: now you're scaring me, Zha
[13:07] Zha Ewry: Took four tries to get here.
[13:07] Zha Ewry: Got ruthed, underwater. 50m from here, with an inv full of someoen elses stuff
[13:08] Khamon Fate: Zha is IRpsyCic
[13:08] Zha Ewry: I'm willing to bet.. that wasn't a good sign
[13:08] Wyn Galbraith: Hello, Zha. I ended up underwater too with a box.
[13:08] Khamon Fate: Really? Someone elses' stuff?
[13:08] Khamon Fate: That's a bit odd.
[13:08] Zero Linden: That's true - I like to multiply C++ by Python by (HTTP + XML)
[13:08] Rex Cronon: i don't like that.
[13:08] Zero Linden: okay, so there was an add in there...
[13:08] Wyn Galbraith loves SL cause you sometimes never know where you're going to show up. Part of the fun.
[13:09] Hiro Market: and as what
[13:09] Zha Ewry: Nor I.. Not clear who's it was. Ruthed, and clothing on that I don't own
[13:09] Rex Cronon: is not good if other people end up with my things:(
[13:09] Khamon Fate: In all fairness, the sims software wasn't designed to support alife type simulations. That's a possible future direction.
[13:09] Zero Linden: uhm - you probably had just the LIbrary inventory
[13:09] Khamon Fate: You people and your attachments
[13:09] Zha Ewry: For that matter. I'm rezzzed in the clothing I had on, 4 logs back
[13:09] Zero Linden: one cause of being Ruth'd is that the sim can't get to your inventory server fast enough -
[13:10] Khamon Fate: Have you been betagridding Zha?
[13:10] Zero Linden: in which case it can't get your body shape, and ditto your contents
[13:10] Zero Linden: in that case, you get only the library
[13:10] Zha Ewry: Not since I emptied my cache
[13:10] Khamon Fate: Oh that makes sense
[13:10] Wyn Galbraith: At least you're not naked.
[13:11] Zha Ewry: This was beyond the normal ruthing.. but.. shrug.
[13:11] Rex Cronon: ok, i have a question, how come possible for others to spam you so hard with textrues that your client crashes?
[13:11] Zha Ewry: Yesterday other people could see parts of *MY* RL desktop in thier clients
[13:11] Wyn Galbraith: How many can write in their diary, or blog, today at work I got Ruth'd?
[13:11] Zero Linden: Zha - now wait a minute!
[13:11] Zero Linden: your RL desktop? I assure you we don't send that up
[13:12] Zha Ewry: I had textures which were my desktop... People could read them.
[13:12] Zha Ewry: And I saw the same.. today.
[13:12] Zero Linden: Had you been VNCing with 'em
[13:12] Zero Linden: ?
[13:12] Zha Ewry: Jeans textured with someone's desktop
[13:12] Rex Cronon: if there are memory allocation problems they can see it
[13:12] Zero Linden: we sometimes show random segments of OpenGL memory as textures
[13:12] Zha Ewry: No.. I hadn't been
[13:12] Zha Ewry: I'll save you a screen shot
[13:12] Zha Ewry: It was freaky
[13:12] Zero Linden: Okay - let's officially begin
[13:13] Zero Linden: As always, everything said here will end up in the wiki - talk openly and be welcome.
[13:13] Wyn Galbraith: Would that have anything to do with the graphics memory getting dumped somehow?
[13:13] Zero Linden: SO.... let's look at the graphics issues a bit - insofar as I can
[13:13] Rex Cronon: how about my question?
[13:13] Zero Linden: The pipeline looks like this
[13:13] Zero Linden: sim sends jpeg2000 compressed streams bit by bit to the viewer
[13:14] Zero Linden: the viewer decodes them into a sequence of "MIP" levels, or the same image at different sizes
[13:14] Rex Cronon: u chunks in datagrams
[13:14] Zero Linden: it does so progressivly as it gets the data
[13:14] Rex Cronon: u mean*
[13:14] Zero Linden: Then it feeds the texture data to openGL
[13:14] Zero Linden: but - there is always, ALWAYS, too much of it
[13:14] Zero Linden: so it feeds different MIP levels based on how far away the texture is... and does
[13:15] Zero Linden: some other juggling to try to get an "optimized" mix
[13:15] Zero Linden: So - First likely place to get a crash
[13:15] Jarod Godel: Is that why GLIntercept always showed 2-3 versions of the same texture?
[13:15] Zero Linden: Jarod - yes
[13:15] Wyn Galbraith: Interesting.
[13:15] Khamon Fate: That *is* interesting
[13:16] Zero Linden: The decode is supposed to be "safe" -- you should be able to spew junk at the jpeg2000 decoded
[13:16] Zero Linden: and it should just happily say "malformed"
[13:16] Zero Linden: but - it isn't clear to us that that is certain - there may be cases where it crashes....
[13:16] Zha Ewry looks thoughtul at should
[13:16] Zero Linden: Second place for a possible crash-
[13:16] Wyn Galbraith notes that should doesn't make it so ;)
[13:16] Zero Linden: There is a tremendous amount of texture fragments flying around and so lots of memory and disk management for them
[13:17] Zero Linden: Oh yes, on the should - we didn't even write it! It is the KDU library with the "safe" options enabled
[13:17] Rex Cronon: griefers use textrues to spam others(even to crash their viewer) :(
[13:17] Zero Linden: So yes, we are well aware of the likelyhood of some sequence that might kill it.
[13:17] Wyn Galbraith wonders, "That could be why I have been getting blue screen stops in display threads since the last viewer release.
[13:18] Zero Linden: Wyn - I suppose - the way to detect the first one is to clear you cache, and then see if there is a particular texture that, when it comes into view, it crashes
[13:18] Khamon Fate: When you reach a point Zero, will you explain how shared RAM is used in addition to the GPU's memory?
[13:19] Zero Linden: If you have one that is reliable - let us know!
[13:19] Khamon Fate: and if video data is ever swapped to the HD
[13:19] Wyn Galbraith: Ah good idea. It usually happens when I'm building and zero'ng in on a section of the build. I figured it was taxing the display.
[13:19] Zero Linden: Okay - so second place for crashing is in memory management. We feel pretty confident that stuff is working there - since it if wasn't - things would go south pretty quickly -- there is a lot of texture data in almost every scene
[13:20] Donovan Linden: ALMOST every scene? :-)
[13:20] Hiro Market: how does your low level texture management work - deciding what to bind?
[13:20] Zero Linden: The third place for crashing is with moving things in and out of OpenGL memory.
[13:20] Zero Linden: Here there are many deamons - the most being that we are working to an abstract standard that is implemented
[13:20] Zero Linden: very differently, and often with extensions, with every different video card driver
[13:20] Wyn Galbraith increased her memory from 1G to 2G, updated her display driver, dumped Norton and put an icepack under the laptop. Now it happens less but it still happens.
[13:21] Zero Linden: What video system?
[13:21] Zero Linden: Now - as for movement of texture data
[13:21] Wyn Galbraith: Of course it's unsupported. Intel on a Gateway Tablet PC.
[13:21] Zero Linden: Ah - well, that is about the worst case -
[13:22] Zha Ewry nods @ icepack
[13:22] Wyn Galbraith: That's why I haven't filed a bug. Figured it would be tossed out.
[13:22] Zero Linden: Not that I don't think we'd like to support it - but those drivers are even harder to work with
[13:22] Wyn Galbraith: Hey the icepack helps.
[13:22] Zero Linden: at least, that's my understanding
[13:22] Zha Ewry has nearly burnt RL thighs on the laptop
[13:22] Donovan Linden: We don't have a very big graphics team
[13:22] Zero Linden: As I understand our texture methodology-
[13:22] Donovan Linden: Which is why I encourage people to take a look at the open source viewer and pitch in
[13:22] Zero Linden: we never move textures from the video card back to main memory EXCEPT
[13:23] Zero Linden: for two things (and now I think I know how Zha's friend saw her desktop...)
[13:23] Wyn Galbraith always tests boundries, it's her nature, "Too many years of QA".
[13:23] Donovan Linden: Doesn't baking textures composite on the gpu and then move the result to main memory
[13:23] Zero Linden: 1) When you "bake" your avatar - we use OpenGL to composite all the textures and then read back the composited result
[13:23] Donovan Linden: I think I know Zero's theory about Zha's bug
[13:24] Zero Linden: So - Zha - if the read back, which is one of the things in OpenGL that is very unevenily implemented - or there are lots of prorpitary extensions for it
[13:24] Zero Linden: could have read back part of your desktop
[13:24] Zha Ewry: Ahhh...
[13:24] Zero Linden: and then upload that as your clothing
[13:25] Zha Ewry: We will try and recreate and get you a screenshot
[13:25] Zha Ewry: That's what it looks like to us
[13:25] Zero Linden: Zha - do you have two monitors?
[13:25] Zha Ewry: Yeah.
[13:25] Wyn Galbraith: I bet it's my OpenGL, it's 1.something. I think SL recommends 2.something.
[13:25] Zha Ewry: External on the laptop..
[13:25] Zero Linden: And do you have SL on the non-main window?
[13:25] Zha Ewry: I never run 2 at once, tho
[13:25] Zero Linden: (the one without the menu bar, if it is a mac)
[13:25] Donovan Linden: I wish we did baking server-side, but we don't have any composition code available in that environment
[13:25] Zha Ewry: That's begging to blue screen
[13:25] Khamon Fate: This is making sense. What's the other reason you move textures into main memory?
[13:26] Zha Ewry: Zero.. with this as a clue.. we'll try and teack down a bit more
[13:26] Donovan Linden: composition? compositing
[13:26] Hiro Market: hmm, I've run the client expanded across two monitors and amazingly it works fine
[13:26] Zero Linden: No, even if you only run one SL - if SL is on the non-main screen, then the OpenGL support for readback isn't well defined - and our code doesn't always work
[13:26] Zero Linden: but we don't know of code that always will
[13:26] Zha Ewry: Ahh.
[13:26] Zha Ewry: Nodes
[13:26] Zha Ewry: Nods
[13:26] Zha Ewry: Ok.
[13:26] Donovan Linden: Hiro: That's awesome, mac or pc?
[13:26] Zero Linden: Hiro - it is only the read back function that doesn't seem to work
[13:26] Wyn Galbraith: This is so very informative.
[13:27] Zero Linden: there are coordinate things that don't seem to work correctly
[13:27] Zha Ewry: Why we all show up here ;-)
[13:27] Hiro Market: PC, nvidia 6600GT 256MB , Vista Business with aeroglass
[13:27] Sifu Moraga: :-)
[13:27] Wyn Galbraith grins and loves coming here.
[13:27] Zero Linden: "Nodes"! I like to node too.... I bet Khamon does all the time....
[13:27] Donovan Linden: Nice
[13:27] Wyn Galbraith just noded in her last network project for school.
[13:27] Zha Ewry winces at her usual sloppy typing
[13:28] Zha Ewry normally only nodes when her head is stubbed ub
[13:28] Zero Linden: The other read back happens when you click on anything --- we use openGL to redraw the screen, giving each object a fixed color, then read back the pixel color at the place themouse is
[13:28] Zero Linden: then we go back to normal drawing
[13:28] Zero Linden: this seems to work on multiple monitors flawlessly
[13:28] Sifu Moraga: !
[13:28] Donovan Linden: That part is probably not going to ever change... right?
[13:28] Wyn Galbraith: Don't worry Zha, that might be the viewer too. My son types like lightening and always complains of dropped or changed letters.
[13:29] Wyn Galbraith: Wait, it runs better on multiple monitors?
[13:29] Zero Linden: Donovan - no - it is a pretty clever trick which keeps the application from ahving to duplicate all the transforms that the video GPU does so well
[13:29] Sifu Moraga: definately the viewer. I get that all the time: the dropped letters
[13:29] Zero Linden: Wyn - no you misunderstood me - the clicking read-back from the video card works just as well on two monitors as one
[13:30] Wyn Galbraith: Ah, ok, I understand.
[13:30] Donovan Linden: I keep trying to think of ways we could figure out the x, y coordinates of the click on the face as well, but I fail
[13:30] Khamon Fate: If y'all do that, why don't we have touch areas on primitives?
[13:30] Zero Linden: Donovan - I have a plan for that....
[13:30] Khamon Fate: Great minds think alike.
[13:30] Donovan Linden: Khamon: Because we can figure out what prim was clicked, but not where
[13:30] Zero Linden: Khamon - we paint each object with a solid flat color
[13:31] Khamon Fate: Oh oh you said that DOH Khamon
[13:31] Donovan Linden: I guess figuring out where involves some sort of translation between two coordinate spaces
[13:31] Zero Linden: If we do a second pass, painting just the object selected, then we could determine both face and x,y
[13:31] Donovan Linden: I'm not a 3d graphics programmer :P
[13:31] Wyn Galbraith: I've seen the dead flat gray.
[13:31] Donovan Linden: Zero: I thought that might work
[13:31] Zero Linden: where x,y would be keyed to the texture repeat and angle and offest
[13:31] Khamon Fate: It would have to be the sim that knew the coords
[13:31] Zero Linden: ?
[13:31] Donovan Linden: would the second pass render some sort of gradient across the selected prim, and everything else as black?
[13:31] Zero Linden: No - we can do it all viewer side
[13:32] Khamon Fate: and then have the viewer transmit to the sim where I touched the prim?
[13:32] Wyn Galbraith ponders looking at the viewer code just for fun.
[13:32] Donovan Linden: This is another thing that could be done completely using the open source codebase
[13:32] Donovan Linden: Since linden isn't likely to get to it any time soon... :(
[13:32] Zero Linden: Yes - rerender the object, temporarily replacing all the textures with textures that ramp red from 0 to 1 in one axis, green 0 to 1 in the other, and encode the face number in blue
[13:32] Khamon Fate: True that kind of branch project is perfect for the open source crew
[13:32] Donovan Linden: Yes, and then the viewer would transmit to the sim where you touched the prim
[13:33] Zero Linden: Well- donovan, we'd need a message back to the sim that delivered that information
[13:33] Zero Linden: but the gathering of the info could be done on the open source side
[13:33] Wyn Galbraith: That's a interesting suggestion Zero.
[13:33] Khamon Fate: You would yes because the script would need to know.
[13:33] Donovan Linden: Right, but if the coords were gathered and the patch were submitted, it would be incentive for us to add the server side
[13:33] Donovan Linden: since many many scripts would benefit from it
[13:33] Zero Linden: You just need one such gradient texture for each face ... and they can be small, 128x128 is probably sufficient
[13:33] Donovan Linden: All interactive user interfaces would benefit
[13:33] Zero Linden: infact 64x64 probably is
[13:34] Khamon Fate: Just add it to the dialog box code as something talking to the script.
[13:34] Zero Linden: well, we'd add llDetectedFace() and llDetectedPos() calls methinks
[13:34] Khamon Fate: yes we don't need many touch points even on larger prims
[13:34] Zero Linden: then in touch_start() you could get them
[13:34] Zero Linden: well, for that matter 32x32 would probably be enough
[13:35] Zero Linden: (small textures are good as we'd need to keep all of them in the video memory at all times)
[13:35] Sifu Moraga thinks this all seems like the wrong approach but can't think of anything better
[13:35] Rex Cronon: at least detectedface can be quite usefull
[13:36] Zero Linden: Sifu - well - it is a sort of low level abstraction... but until there has been a decade of building 3D UIs, I'm not sure we know what the right tool kit is
[13:36] Khamon Fate: yes that's true, it provides a three touch prim
[13:36] Zero Linden: think of it as the X of virtual worlds
[13:36] Donovan Linden: the remote display protocol
[13:36] Khamon Fate: A more highly abstracted tool will likely just do this same thing transparently.
[13:36] Zero Linden: after two decades, we now know how a 2.5D window system should work - and all the APIs to all the toolkits are basically the same
[13:36] Sifu Moraga: don't take it as critism, Zero.
[13:37] Sifu Moraga: I'm a security geek, not a game programmer
[13:37] Donovan Linden: Khamon: You mean just tell you the coord that was clicked in the touched callback or something?
[13:37] Zero Linden: I don't - I'm just lamenting with you that we don't know what a 3D world UI should be yet
[13:37] Donovan Linden: Sifu: Heh yeah game programmers think completely differently about problems
[13:37] Donovan Linden: It's always about how fast you can do something
[13:37] Sifu Moraga: that's why this is all so much fun - the unknown
[13:38] Donovan Linden: At least, that's what it seems like to me, a non-game-programmer
[13:38] Donovan Linden: Or Non-game programmer
[13:38] Khamon Fate: Linden hires non-gamers? whoa
[13:38] Donovan Linden: heh. Well, I'm a gamer...
[13:38] Khamon Fate: Do y'all drink coffee too?
[13:38] Donovan Linden: I try not to
[13:38] Sifu Moraga: coffee? what's that?
[13:38] Donovan Linden: but sometimes I do ;)
[13:38] Wyn Galbraith has always been a wantabe program, took classes and everything, ended up working with programmers instead of being one :).
[13:39] Zero Linden: Khamon- I'm a non-gamer - never programmed them, hardly ever played 'em
[13:39] Rex Cronon: why doesn't each face have a different color, for each object?
[13:39] Sifu Moraga: It took Joi Ito to get me to try SL. I've never ever been into gaming.
[13:39] Khamon Fate: ha ha I graduated with programming degrees and would up building networks.
[13:40] Wyn Galbraith: SL isn't a game.
[13:40] Zero Linden: Rex - when we are picking an object for a click? I think they were worried about the number of distinct colors they could count on
[13:40] Zero Linden: when they wrote it....
[13:40] Sifu Moraga: That's what I found out, and Joi already knew
[13:40] Zero Linden: like remember when we all made our web pages use the "Netscape color pallet"?
[13:40] Wyn Galbraith remembers.
[13:40] Khamon Fate: I still use basic color codes, multiple of three.
[13:41] Sifu Moraga: *cough cough*
[13:41] Zero Linden: right - well, now we can assume 24bit color everywhere
[13:41] Khamon Fate: s, multiples
[13:41] Wyn Galbraith builds her webpages with TextPad.
[13:41] Zero Linden: but there was a time when 16bit color was not uncommon (might still be for all I know)
[13:41] Zero Linden: inwhich case 15k prims x 8 faces....
[13:41] Zero Linden: too many
[13:41] Khamon Fate: So you *are* a programmer Wyn if you're writing PHP in TextPad.
[13:41] Jarod Godel: I'm ff0000 with envy at your skill with colors Khamon.
[13:42] Rex Cronon: i think i know how to fix it, each face has a different alpha(at least for the get face touched)
[13:42] Sifu Moraga: lol
[13:42] Zero Linden: 9... 9 faces... a twisted tube can have 9 faces!!!
[13:42] Hiro Market: aye, but you'd have had to choose to put the client into 16 bit mode
[13:42] Khamon Fate: ahem that's 00FF00 Jarod
[13:42] Jarod Godel: my point exactly
[13:42] Khamon Fate: I generally prefer 009900 myself.
[13:42] Zero Linden: Jarod - that is the geekiest thing said at these office hours yet!
[13:43] Jarod Godel: yay
[13:43] Zero Linden: ...even if it was technically inaccurate...
[13:43] Jarod Godel: Now I feel 0000ff
[13:43] Wyn Galbraith suddenly gets Jarod's joke.
[13:43] Khamon Fate shouts: STOP STOP
[13:43] Zero Linden: LOL
[13:43] Sifu Moraga: OT alarm
[13:43] Jarod Godel 000000's out and sees an ffffff light
[13:43] Khamon Fate: 110001010100100110101011110010000100000000101010101001001010100101001!!1
[13:43] Zero Linden: Okay - so latest from the message liberation trenches
[13:44] Hiro Market: or fades to 00FFFFFF
[13:44] Wyn Galbraith: Oh don't make me decode binary... my favorite thing.
[13:44] Rex Cronon: translator needed from hex to english:)
[13:44] Khamon Fate: Is tomorrow's patch postponed? Really?
[13:44] Zero Linden: Seems the rebels (that's us) were delt a serious set back when they found that the protocol for adding child cameras wasn't going to easily
[13:44] Zero Linden: work with capabilities
[13:44] Khamon Fate: I made that up, don't waste your cycles.
[13:45] Zero Linden: We also spent hours going in circles trying to understand what the current packing order is and why it works
[13:45] Zero Linden: since our "fix" to it didn't, and in fact crashed horribly
[13:45] Rex Cronon: packing order of what?
[13:46] Zero Linden: Long and short of it is - we've whipped up a new protocol for getting child cameras to relay capabilities
[13:46] Jarod Godel: ...
[13:46] Jarod Godel: dooood!
[13:46] Sifu Moraga digs into SLDEV for the relevant discussion...
[13:46] Zero Linden: and as of just before lunch I finally understood how the crazy packing order was managed in both builder and decoded
[13:46] Rex Cronon: why exactly do u need child cameras?
[13:47] Zero Linden: Ah - Child Cameras
[13:47] Zero Linden: good topic
[13:47] Zero Linden: So - when you are near a sim edge and can see into a neighboring sim
[13:47] Donovan Linden: The child camera is a connection the viewer has to a sim the avatar can see, but is not on
[13:47] Zero Linden: rather than have that sim relay all information about it to the sim you are in, so that the sim you are in can send it to you
[13:48] Rex Cronon: so there are 8 child cameras available at all time?
[13:48] Zero Linden: the viewable sim has a "Child Camera" for you - a sort of phantom avatar - that is positioned in it's local space, off it's edges to match where you are
[13:48] Zero Linden: then it can send all object updates and sim info directly to you
[13:48] Zero Linden: under message liberation, that path needs to have capabilities, so your viewer can get those messages securely - via HTTP event polling
[13:49] Wyn Galbraith: Is that how throwing your sight works? It's a child camera?
[13:49] Zero Linden: SO, when the sim you're in establishes to the sim you can view, and to your viewer, that there needs to be this communication, there needs to be a single, secure "seed capability"
[13:49] Zero Linden: transmitted from the viewed sim to the current sim to you (as *that* is a secure channel) - after which the viewer has a secure channel to the viewed sim
[13:49] Zero Linden: follow me?
[13:50] Wyn Galbraith: Wow.
[13:50] Donovan Linden: Hey otakup0pe
[13:50] otakup0pe Neumann: Hi
[13:50] Zero Linden: Rex - no - the sim tracks your frustum - what you can see - so it needn't have all 8 child cameras active at once
[13:50] Jarod Godel: Zero, is that based on where our avatar is or where our POV is?
[13:50] Zero Linden: POV
[13:50] Zero Linden: so yes, the viewer is constantly informing the sim of camera motino
[13:50] Zero Linden: motion
[13:51] Rex Cronon: if i set the draw distance over 300, and look from up to ground i can see all 8 surrounding sims
[13:51] Zero Linden: (I'm not sure of the priority of that info... though....)
[13:51] Zero Linden: exactly
[13:51] Khamon Fate: The viewer sends the sim loads of data. No wonder avs are such a drag.
[13:51] otakup0pe Neumann: Heh.
[13:52] otakup0pe Neumann: Everybody should use Sleek.
[13:52] Zero Linden: So, the problem was that the sim basically told the viewed sim, and the viewer introductions to each other ---
[13:52] Donovan Linden: Yeah, and the sim has to do the hard work of calculating what the avatars can see, as well
[13:52] Donovan Linden: the "interest list"
[13:52] Zero Linden: but didn't allow for any data to flow from the viewed sim to the viewer
[13:52] otakup0pe Neumann: I've heard about this interest list.
[13:53] Jarod Godel: Zero, why can't child cam's just cache a sim and not load real-time?
[13:53] Zero Linden: So - we had to add protocol to the child camera code - and that wasn't easy - as it gets very complicated near corners
[13:53] Zero Linden: remember that each sim only talks with the four touching sims -
[13:53] Khamon Fate: not the corners
[13:53] Zero Linden: so the sim on the corner needs to get told that you can see it ... but this has to get relayed via the other sims...
[13:54] Zero Linden: ick!
[13:54] Rex Cronon: so touching courners is not really touching?
[13:54] Zero Linden: Rex- correct
[13:54] Zero Linden: Jarod - becuase then those regions would appear static to you
[13:54] Zero Linden: which would break the connected world
[13:54] Khamon Fate: Why *don't* sims talk to their corners?
[13:54] Wyn Galbraith repeats her wow.
[13:54] Zero Linden: Khamon - I was just wondering myself....
[13:55] Zero Linden: At least for this aspect of the protocol it would much easier!
[13:55] Donovan Linden: Yeah, is there a good reason not just to have sims talk to all 8?
[13:55] Khamon Fate: There must be a reason.
[13:55] Hiro Market: so if you moved a cube across a corner?
[13:55] Donovan Linden: I bet there isn't a reason
[13:55] Zero Linden: Donovan - once all communication is via HTTP - then probably not -
[13:55] Zero Linden: the UDP circuits have overhead to keep them alive
[13:55] Wyn Galbraith: That's why you can fall out when crossing sim borders too quickly.
[13:55] Khamon Fate: You don't Hiro, you always cross two borders to go through a corner.
[13:55] Donovan Linden: Yeah but 4 more sims are nothing compared to the overhead of the avatars! :)
[13:55] Wyn Galbraith does that for fun.
[13:55] Zero Linden: Wyn - there is quite a bit of clever protocol with retrying and fallback to make things like navigating corners work and be reliable
[13:56] Khamon Fate: What Donovan said.
[13:56] Zero Linden: Right - the Hiro's cube does two crossings
[13:56] Wyn Galbraith: I want to stop at the border sometime, there's one right behind my land, and say "Hey, I'm getting ready to cross..."
[13:56] Khamon Fate: The Child Camera that Ate the Corner Sim.
[13:56] Donovan Linden: Well if icehouse ends up doing the region domain work, we'll see about having all 8 neighbors talked to directly
[13:56] Zha Ewry would click that button, if it exited Wyn
[13:56] Zero Linden: Indeed....
[13:57] Donovan Linden: but that's not likely to be for quite a while...
[13:57] Wyn Galbraith: Maybe the corners could be secondary in the que.
[13:57] Zero Linden: Just remember - it is hard because, for example, any of the 8 might just drop off at anytime and reconnect (from another simulator host!)
[13:57] Khamon Fate: If you had a button that instantly ended all life in the Universe,
[13:57] Wyn Galbraith laughs at Zha's comment.
[13:57] Zero Linden: and we need to reestablish all the communications
[13:57] Jarod Godel: Click, click, click.
[13:57] Zero Linden: I'm actually in a bit of awe that it all works and how robust that aspect of our system is
[13:58] Zero Linden: (I know, "robust?!?!?" you're all thinking)
[13:58] Khamon Fate: Jarod Godel << Davros
[13:58] Wyn Galbraith: I've been afraid to think about the depth of the code that runs SL. But it leaks into dreams.
[13:58] Khamon Fate: Compelling Zero, you're supposed to call it compelling.
[13:59] Zero Linden: (but most systems would just give up and say something like "oh, that server crashed? just re-load to see it" - whereas for themost part SL systems automatically recover)
[13:59] Khamon Fate: Or is only Philip allowed to say that?
[13:59] Wyn Galbraith remembers testing a VR enviroment at Autodesk when she discovered some old software of theirs that no one wanted. "There was a demo."
[14:00] Khamon Fate: Remember Adobe's Atmosphere?
[14:00] Rex Cronon: so if they self-recover why does it take so long for sims to work again after griefers attack?
[14:00] Wyn Galbraith: No, missed that one.
[14:01] Khamon Fate: They have to IPL, then talk to the space server, then load ALL the sim data, at least. That's gotta take some time.
[14:01] Zero Linden: Rex - that's pretty open ended - there are many things that can go wrong - and reallyl most regions restart within 2 min. or so of crashing
[14:01] otakup0pe Neumann: if the state they save when crashing contains malicious objects, they'd keep looping
[14:01] Zero Linden: And then another 1 min. of start up at most...
[14:01] otakup0pe Neumann: is how i once heard it explained
[14:01] Zero Linden: otaku. - exactly
[14:02] Zero Linden: though we detect that and shut the region down after a few quick crashes
[14:02] Zero Linden: and then it requires grid monkeys....
[14:02] Khamon Fate: Y'all I gotta buzz. Thanks for hosting Zero
[14:02] Khamon Fate: And Thank You for attending Donovan
[14:02] Rex Cronon: i guess SWT(sandbox weapons testing) must be a bad exception, since it has been down since 10:05:(
[14:02] Khamon Fate: Oh look, I'm not standing in the chair
[14:03] Zero Linden: Rex - right
[14:03] Zero Linden: I'm looking at it now
[14:03] Zero Linden: It crashed at 10:04 - then cam back up -
[14:03] Zero Linden: and ran until 12:36 - crashed 5 times in 10 minutes
[14:03] Rex Cronon: i already talked to 2 lindes about it, but is still down
[14:03] Zero Linden: and is now marked "crashed"
[14:03] Zero Linden: and won't restart until someone goes and removes what's in it that is bad
[14:04] Jarod Godel: Keeping SWT up must be like running a bloodbank full of vampires.
[14:04] Rex Cronon: either phyical objects or self-replicators
[14:04] Zero Linden: YUP!
[14:04] Donovan Linden: Cleaning crashed sims is either the job of concierge or gridmonkey
[14:05] Sifu Moraga: We crashed a few clients doing weapons training on my island but not the sim
[14:05] Zero Linden: Okay all - time to hit the source code again for me
[14:05] Jarod Godel: l8r, 0
[14:05] Wyn Galbraith has a class to go to.
[14:05] Sifu Moraga: cu, tx
[14:05] Rex Cronon: bye zero
[14:05] Zero Linden: Thanks again - 'til Thursday.
[14:05] Hiro Market: that was really interesting 0
[14:05] Zha Ewry: Bye Zero, and thanks as always
[14:05] Rex Cronon: thanks for your time
[14:05] Wyn Galbraith: Thanks again Zero. Always interesting. I love this talk.
[14:05] Donovan Linden: bye everybody
[14:06] otakup0pe Neumann: Bye everyone as well.
[14:06] Rex Cronon: bye donavan
[14:06] Wyn Galbraith: Bye all, got to go make a wishing well.
[14:06] Sifu Moraga: bye Donovan