User:Andrew Linden/Mentors QA/2007 12 21

From Second Life Wiki
Jump to: navigation, search

Transcript of Andrew Linden's office hours:

[10:11] Amber Linden: Welcome andrew!
[10:11] George Linden: Woohoo, welcome Andrew!
[10:11] Inara Marquette claps
[10:11] Kitty Barnett: last week at the IDV Q&A
[10:11] Andrew Linden: Hi, sorry I'm late.
[10:11] Andrew Linden: Is this discussion text or voice?
[10:11] George Linden: This will be in text so that we can provide a transcript after the meeting :)
[10:11] George Linden: Mentors will IM me with questions,
[10:11] Andrew Linden: Ok good. That is my preference. I'll also post the transcript on the same page as my office hours.
[10:12] George Linden: Let me know when you're ready for the next question by saying my name-
[10:12] Andrew Linden: George
[10:12] Andrew Linden: Like that?
[10:12] George Linden: For many though, a basic understanding of Havok 4 isn't clear, we might want to start with a small summary first to get the ball rolling if you don't mind X)
[10:12] Lexie Linden: Hi Andrew : )
[10:12] George Linden: Haha, yep
[10:12] Andrew Linden: ok
[10:13] Andrew Linden: The Havok4 project is an upgrade to the "physics engine".
[10:13] Andrew Linden: The physics engine is the portion of code/algorithms in the SL simulator that compute how objects collide and move.
[10:13] Andrew Linden: Right now we are using a 3rd party physics engine from a company called Havok
[10:14] Andrew Linden: and we're using Havok-1.8.3 which is really old
[10:14] Andrew Linden: Havok5.1 is the latest, but we're currently working on moving over to Havok4.6
[10:15] Andrew Linden: Anyway, the main benifit of the newer physics engine is that we hope to drastically reduce the crash rate of the SL simulators.
[10:15] Andrew Linden: Right now Havok1 can "block" for a long time while it computes the details for very complicated collisions
[10:15] Canny Daniels: /ao off
[10:16] Andrew Linden: We call this a "deep think". It isn't techhnically a "crash" but the engine takes so long to come up with an answer (anywhere from a few seconds to several minutes) that we have to shut down the simulator in order to get back.
[10:16] Andrew Linden: So, the main effort in the Havok4 project is to eliminate the "deep think's".
[10:17] Andrew Linden: The project is way overdue -- it has now been in development for more than a year.
[10:17] Andrew Linden: However, it is very close.
[10:17] Andrew Linden: We're now starting to have early trials on SL proper -- not just the preview.
[10:18] Andrew Linden: The main bugs that remain have to do with vehicles, some collision oddities, and a few avatar motion bugs.
[10:18] Andrew Linden: However, we expect that a few regions may find early versions of Havok4 good enough, and much less crashy.
[10:18] Andrew Linden: Hence we're trying it out.
[10:19] Andrew Linden: Ok, I guess that is a good enough summary. I'm ready for questions.
[10:19] George Linden: Okay, here we go--remember to send follow up questions via IM to me, rather than open chat :)
[10:19] George Linden: [10:14] *** parent estate: 1, mainland [10:14] Heather Narcissus: For all objects or only physicl objects? [10:18] Heather Narcissus: So no real apparent changes to users except fewer crashes? No added lsl functions?
[10:20] Andrew Linden: Yes, there shouldn't be many differences between Havok1 and Havok4
[10:20] Andrew Linden: That is, we aren't adding any major new features.
[10:20] Andrew Linden: That said... there are some differences, most of them small.
[10:21] Andrew Linden: For example, perfect spheres in Havok4 collide like true spheres -- not faceted geometry.
[10:21] Andrew Linden: Also, Havok4 has penetration resolution built-in
[10:21] Andrew Linden: so this means that two dynamic objects will push apart if they are penetrating each other
[10:22] Andrew Linden: we only have that enabled for avatars in Havok1, but it is on by default in Havok4 for all objects, and is hard to disable.
[10:23] Andrew Linden: The new physics engine controls the motion/dynamics of all objects, not just those marked "physical". It also controls how dynamic objects collide against static objects.
[10:23] Andrew Linden: Next question George.
[10:23] George Linden: Meghan Dench: (1) I have tested Mega Prims on Crash me and they did not crash the simulator, only make it lag and a little instable, can you verify that MegaPrims are stable using Havok4 (2) When many prims are used, or many physical prims are used/dropped on Havok4 the simulator becomes VERY laggy can you tell us why and if this will be improved? It is also when alot of prims are newly rezzed.
[10:24] Andrew Linden: Regarding megaprims... I have not tested megaprims on Havok4.
[10:24] Andrew Linden: Megaprims are a mis-feature... a bug that many people consider a feature.
[10:25] Andrew Linden: They aren't "supported", so I'm not actively doing any development to test or fix them, however they are also not under threat of removal.
[10:25] Andrew Linden: I was motivated to remove them about a year ago, however they are now in such ubiquitous use, that they cannot be removed.
[10:25] Andrew Linden: They will stay in their current unsupported state until I can fix them right.
[10:26] Andrew Linden: As to the lagging of a Havok4 region... it will always be possible to lag a physics engine.
[10:26] Andrew Linden: If it doesn't slow down for 100 objects, you can just throw 1000 at it.
[10:26] Andrew Linden: The good news for Havok4 is that it is much harder to actually crash.
[10:27] Andrew Linden: Still crashable... there are some crash modes that are triggered by the script engine, for example.
[10:27] Andrew Linden: However, some objects that would deep think a Havok1 region into a crash will not kill a Havok4 region.
[10:28] Andrew Linden: There is also code in the Havok4 region, the Runtime Collision Control System (RCCS) which tries to prevent the lag from getting too bad.
[10:28] Andrew Linden: Basically the RCCS will disable collisions, and start pinning some objects in place temporarily when the lag gets reallly bad (well... lag from the physics engine).
[10:29] Andrew Linden: The RCCS can also simplify the collision shape of some objects... making concave objects collide like convex boxes, for example, which are much cheaper to compute.
[10:29] Andrew Linden: However, this has bad side effects... such as boxifying the hollow cylindrical house that you are standing in.
[10:30] Andrew Linden: So... the RCCS has been lobotomized, in its current state, to NOT boxify certain objects in an attempt to reduce the offensive/aggressive shape Level Of Detail (LOD) changes.
[10:30] Andrew Linden: The result is that it is still possible to get crippling lag in Havok4.
[10:31] Andrew Linden: It is a work in progress.
[10:31] Andrew Linden: Since it is less crashy we're going to try to ship it.
[10:31] Andrew Linden: And improve the lag controls in the future.
[10:31] Andrew Linden: Next question George.
[10:31] George Linden: [10:18] Jisel Cortes: will the new physics engine also improve the way fexible prims behave? or will they remain largely untouched by the physics and only follow gravity as they do now?
[10:31] Andrew Linden: No, flexi prims are a client-side effect only.
[10:31] Andrew Linden: All the work I'm goind is on the server-side.
[10:32] Andrew Linden: Also... no changes on sculptie prims.
[10:32] Andrew Linden: I have plans on making better collision approximations for sculpties, but that wont' start until the new physics engine is done and stable.
[10:32] Andrew Linden: Next question George.
[10:32] George Linden: Patchouli Woollahra: Would Havok 4 also teheoretically allow for sims with an increase in prim allowances over the 15k we currently get?
[10:33] Andrew Linden: No, there will be no prim count increases. Havok4 may be able to handle more prims, I haven't tested it muuch, however...
[10:33] Andrew Linden: the main problem with lots of prims is in the "interestlist" code, which decides which objects for which to send updates to the viewer.
[10:34] Andrew Linden: That is, the simulator will lag for larger number of prims for reasons that are independent of the physics engine.
[10:34] Andrew Linden: Sometime after the Havok4 project is done we'll also be starting another project we're calling "object transport"
[10:35] Andrew Linden: which will be an overhaul of the server-side interestlist code, how objects are streamed to the client
[10:35] Andrew Linden: and also how they are received at the client. Maybe even changes to how they are cached... not sure.
[10:36] Andrew Linden: In any case, there won't be any total prim budget changes per region until "object transport" is getting done.
[10:36] Andrew Linden: It will probably be broken into smaller parts, which are deployed as they are completed.
[10:37] Andrew Linden: Next question George.
[10:37] George Linden: Lozzie Lowe: Will it effect any of the current Teleport functions. Like set primative Params in warppos functions or movetotarget when using over 768m
[10:37] Andrew Linden: No, llMoveToTarget() and other LSL calls should be unchanged.
[10:38] Andrew Linden: If there are differences there then they are either bugs, or unavoidable changes caused by the physics engine implementation itself.
[10:38] Andrew Linden: I don't know of many unavoidable changes... there were a few to do with how the avatar moves, and some objects collide differently -- there is more friction in the Havok4 physics engine, which affects ground vehicles the most.
[10:39] Andrew Linden: Next question George.
[10:39] George Linden: Dave Wormser: Will this require users to upgrade their graphics card ?
[10:39] Andrew Linden: No, it is totally server side. No changes to the SL client which is what uses your graphics card.
[10:39] Andrew Linden: Next question george.
[10:39] George Linden: Carla Chandrayaan: So does this mean that items whiwh once switched between non-physical and physical to accomplish their purpose and had to ultimatelybe made wholly physical to combat these issues will be able to be returned to the former alternating cyclesof physical and non-physical to improve their particular performance?
[10:40] Andrew Linden: Uh...
[10:40] Andrew Linden: I'm not sure I understand the category of objects described in that question.
[10:40] Andrew Linden: So I guess I don't know the answer.
[10:40] George Linden: Will ask for more details
[10:40] George Linden: in the meantime, will take another Q :)
[10:41] George Linden: Phli Foxchase: Question: Do you plan to increase the scale of objects with havok 4 ?
[10:41] Andrew Linden: Perhaps the question is about objects that could ALWAYS be dynamic but are set static when not in use?
[10:42] Andrew Linden: There will be no increases in the max scale of prims in Havok4.
[10:42] Andrew Linden: I expect that we won't increase the default prim size until we can fix the "enchroachment problem"
[10:43] Andrew Linden: which is where someone's objects on their parcel overlap onto their neighbor's parcel, to their neighbor's dismay.
[10:43] Andrew Linden: I have a plan for fixing that, and it is part of my megaprim plan.
[10:43] Andrew Linden: The plan is:
[10:44] Andrew Linden: (1) Allow parcel owners/managers to move (or maybe just return) objects that overlap their parcels
[10:44] Andrew Linden: (2) provide some UI feedback to the resident when moving their objects, indicating whether they overlap neighboring parcles
[10:45] Andrew Linden: (3) maybe... provide real-time enforcement of parcel permissions. That is, allow parcel owners to set a paranoid bit "I don't want anyone, or these specific people, from putting stuff on my parcel"
[10:46] Andrew Linden: Once that is done... then perhaps we will allow you to make prims/objects as large as you want... as long as they fit on your parcel.
[10:46] Andrew Linden: That is what I'm calling (4) megaprim liberation
[10:46] Andrew Linden: There are some details there that need to be worked out
[10:47] Andrew Linden: and if it gets done it will be done in steps, as each sub-project is complete
[10:47] Andrew Linden: The object-parcel collision info depends on Havok4
[10:47] Andrew Linden: which is why that project is on hold until Havok4 is done.
[10:48] Andrew Linden: Next question George.
[10:48] George Linden: okay, have a follow up example to Carla's question about the objects changing physical state to accomodate Havok 1 constraints:
[10:48] George Linden: Carla Chandrayaan: Well,as one example (And this is only just because it's the first that cameto mind) VKC pets were once scriptedto alternate between physicaland non-physical statestoimprove their performance for various 'tasks' but because they had such problems with the physics engine,they were forcedto change them toa constant physicalstate - which then createdother problems with their respective performances on various 'tasks' so they had to be coded to include acommand to getthem 'unstuck' (which is a pain when you are trying to use them). But it's not just these items.I've seen the same problems in other items as well.
[10:49] Andrew Linden: Ah yes. I expect Havok4 to eventually solve that problem, yes.
[10:49] Carla Chandrayaan: :o)
[10:49] Andrew Linden: The pets may work well in Havok4 already, I'm not sure.
[10:49] Andrew Linden: Once Havok4 is done we'll be able to start working on new features
[10:50] Andrew Linden: the object-parcel collision queries (solution to prim encroachment) is one example
[10:50] Andrew Linden: there are others
[10:50] Andrew Linden: related to the pets problem... I would like to eventually allow content creator's to proide collision hints for their objects
[10:51] Andrew Linden: so for example, you might be able to build a very complex object, but specify it to collide with a much simpler geometry, alleviating its load on the physics engine.
[10:51] Andrew Linden: The example I like to use is the idea of the airplane's cockpit.
[10:52] Andrew Linden: Airplane enthusiasts would like very detailed cockpits with lots of dials (and prims)
[10:52] Andrew Linden: however, the cockpit instrumentation has nothing to do with how the object collides
[10:52] Andrew Linden: so it would be nice if they could "hint" to the system to NOT build collision info for the cockpit prims
[10:52] Andrew Linden: and to simplify the collision shape for the multi-prim wings and fuselage
[10:53] Andrew Linden: Other cool features that I'd like to work on are:
[10:53] Andrew Linden: per-prim density / collision settings
[10:53] Andrew Linden: manual object mass properties overrides (manually setting the center of mass of an object)
[10:53] Andrew Linden: uh... there are a few more but i can't remember what they are right now
[10:54] Andrew Linden: Next question George.
[10:54] George Linden: Alusz Niven: Will this new engine improve crashes and such when running through a sim border, or is it a separated problem ? Thanks :-)
[10:54] Andrew Linden: The sim border problem is largely unaffected by Havok4 -- it is still a problem.
[10:54] Andrew Linden: Fixing it is somewhat related to the "object transport" project
[10:55] Andrew Linden: however there are some physics engine specific parts that are independent of object transport
[10:55] Andrew Linden: I would like to work on those, and plan to, however they are currently prioritized to be after "prim encroachment"
[10:55] Andrew Linden: Next question George.
[10:56] George Linden: Azildin Furst: I'm interested now in whether or not the havok 4 will incorporate the suggested built in sculptie editor feature or lays the groundwork for it.
[10:56] Andrew Linden: No changes to sculpties in Havok4.
[10:56] Andrew Linden: The sculptie editor feature is mostly a User Interface project, which is viewer-side.
[10:57] Andrew Linden: The "proper collision shapes for sculpties" project is totally server-side, and is independent of any improvements on sculptie editing/creation tools.
[10:57] Andrew Linden: Next question George.
[10:57] George Linden: Okay, just a couple more, we're reaching the top of the hour..!
[10:57] George Linden: Kevyn Hienke: Will the Havok4 allow an increase to the prim limit for physical objects?
[10:58] Andrew Linden: No, I talked about that earlier. There won't be any prim limit changes in Havok4. That is where I started talking about the "object transport" project.
[10:58] Andrew Linden: Next question George. I can go over by 15 minutes if you like. I was almost that late.
[10:58] George Linden: [10:53] Heather Narcissus: Will linking objects still cause rotations to be based on the parent prim. essentially basing a childs rotations on who its linked too, not the parent prim? [10:54] Heather Narcissus: Will it be possible to set centers of rotation instead of assumed center of mass?
[10:58] George Linden: Last ones actually :D
[10:59] Andrew Linden: There are no changes to the root-child heirarchy system in Havok4.
[11:00] Andrew Linden: However, one of the things I hadn't mentioned about Havok4 is that there has been substantial clean-up in our code in that project.
[11:00] Andrew Linden: These are changes that Residents will not notice, but they allow us to move forward in some feature directions that were previously impossible.
[11:01] Andrew Linden: An overhaul of multi-prim object heirarchy is one such project that will be more possible once Havok4 is done.
[11:01] Andrew Linden: We'd like to allow sub-sets of objects to be defined as a sub-object, which can move together.
[11:02] Andrew Linden: So that is what I'm talking about when I say an "overhaul of the heirachy system".
[11:02] Andrew Linden: Incidentally, some of you may recall that we used to have some limited forms of "jointed objects" in SL
[11:02] Andrew Linden: Joints have been disabled, and are totally ripped out of Havok4
[11:03] Andrew Linden: Joints will eventually be redone, however they will be much easier to do after the aforementioned heirarchy overhaul.
[11:03] Andrew Linden: So we'll do that first, then joints.
[11:03] Andrew Linden: Next question George.
[11:03] George Linden: No more questions left, but thank you for the thorough responses!
[11:04] George Linden: And thank you Mentors for the great questions too..!
[11:04] George Linden: Lots of food for thought on things to come--round of applause for Andrew for handling the grilling!! heh heh
[11:04] Andrew Linden: Ok, thanks for having me, and thank you all for coming.
[11:04] Lexie Linden: Thanks Andrew!!