Jump to content

animats

Resident
  • Posts

    6,136
  • Joined

  • Last visited

Everything posted by animats

  1. Akamai server map. Each of those locations has a big cache. Viewers usually run out of JPEG 2000 decoding compute capacity or local network bandwidth before they hit the limits of the asset server network. Long avatar rezzing delays, especially after teleports, are a bug. LL has been working on that, and there have been test runs after Tuesday's Server User Group meetings where everyone present teleported to a test region running new simulator code. There, nobody stayed in pink/white cloud mode for more than 2-3 seconds. Things not appearing at all is also a bug. Those are called "interest list" problems. Monty Linden is working on some fixes to the networking level which may help there. These are not network traffic problems. If you watch network traffic, these bugs show as low traffic levels, not high ones. LL seems to be working hard on this. The motivator seems to have been a new emphasis on the WelcomeHub and new user retention from Linden Lab management. The WelcomeHub has enough traffic, especially when Motown has an event, to bring out most of those bugs. If new users encounter serious bugs in their first hour, SL looks broken and loses business. After years of waiting for fixes in this area, there is progress.
  2. Lighting is about to get more serious. as PBR finally kicks in. There are some gimmicks, though, so every space unlit doesn't go pitch-black by default. That's the way PBR is supposed to work, but from last week's creator user group, it seems like that won't turn on until you add at least one reflection probe. Please, though, light your public spaces. I'm in a newly built region right now, and about half the stores have lighting, and half are dark. If you have a place open to the public, visit it with your viewer set to midnight and shadows on.
  3. Anything that drapes is hard. You need physics with collisions during display, which needs much compute power. This is why long dresses don't work well in SL. Few games have full clothing physics, and even then, usually only on the hero character. There's an intermediate step, though. When you dress an avatar, cloth physics should run, layer by layer from the skin out, and get all the clothing properly layered. No need for alphas. I've seen a clothing design system where this happens. When you change the hair, it fluffs out and then falls into place. That only happens during changes; after that, it's just rigged mesh. (Rendering rigged mesh is an amazingly simple thing mathematically, and GPUs do it. It's the setup that's hard. So anything that can be represented as standard rigged mesh is fast.) Bakes on Mesh, The Next Generation.
  4. Oh, if it's next to your parcel, put in a support ticket and say why you want it. LL may let you have it at $1/m^2. It's up to LL to do that, but if you have a nice looking build and aren't renting out your land, you may well get it. I got one parcel in Vallone that way. It's the one that has the big fountain and the stone lions. (I sometimes put tech demos around the fountain. Right now, one of the stone lions is a flat impostor. Can you tell without walking into the fountain? There's also a bench which, if you stand near it too long, will say "Please take a seat" and seat you using an experience. I've wanted those at "safe hubs", with maybe a 4 hour timer, to get the lost bots out of the way.)
  5. There are quite a few systems for that now. None yet fully compatible with Second Life. That's a conversion problem, not an AI problem. Ready Player Me. They are not as photorealistic as SL, and that's by intent. They implemented full photorealistic avatar generation and backed off, because of the uncanny valley problem. You can get something out of Ready Player Me that you can import into Blender and work with. It won't have an SL skeleton or UVs. The system is primarily intended for games designed to use its avatars. Their business model is that they will someday sell you clothing and accessories for your avatar. Fotor. Can make a 3D avatar from pictures, but mostly from head pictures, not full body. Can't get logged in there; all my anti-hostile-code protections (Linux/Firefox/Privacy Badger) are breaking their login system. A bit suspicious. Real illusion. A pro tool, costs a few hundred dollars. Used for film and game production. Has anyone tried this? There are many more, so many that "10 best" spam sites have lists. I'm not recommending anything specific. Creators, please try some and report back. My art skills are good enough to make buildings, but not humans. There are also new tools for turning un-rigged models into rigged models. See AccuRig. This looks interesting, and it's free. You start with a model in A-pose (standing, arms at sides slightly out from body) or T-pose, and AccuRig rigs the model semi-automatically. Turning its output into an SL skeleton will take some programming, probably. This whole area has become much more automated. As SL moves more towards glTF models, it will become much easier to use standard tools to make SL content. The 3D industry seems to be going to glTF as a universal import/export format. Caution. Read the terms of service on these systems. Some of them restrict what you can do with what you get out.
  6. We might get something else instead - AI tools to do the job. There are AI tools that can make an avatar from a few still pictures. And there are AI tools that can make good still pictures from a text prompt. "Victorian factory girl with dark dress and white apron." Generated by AnimeGenius in "realistic" mode, using GPT-4. Test for a possible NPC for a project in New Babbage. Have any creators been down this road yet?
  7. Larger regions seem to be the big thing that is off the table. They work fine technically in the Other Simulator. This is an LL business decision, I suspect. People would want giant regions for their little house and yard. Most large regions on the grids that support them are mostly empty, and they make the world seem sparse. Personally, I'd like to have them even if the only thing they were used for was Linden-owned open space regions. Large areas of open water or bare ground with a road or two to fill in the gaps between revenue regions, perhaps. Extra water around the edges of the continents, especially Sansara. Clean up rough edges, such as the southeastern empty space of Zindra and the northern edge of Bellessaria, where you can see the edge of the world not going down to ground level. (There's been progress there. The Moles put in some end of road barriers and shrubbery, so you usually don't see those spots by accident.)
  8. Multi-user Blender access is coming. Multi-user Maya access is working now. NVidia Omniverse Connector is a complicated system which allows collaborative editing across multiple programs. There's a special version of Blender which will connect to an NVidia Omniverse server, and when you change something, you can export to the server and everybody else in your session sees it. Some group of people who work together in Blender or Maya should try this and report how it works. This could be a big win for large group efforts, such as mole builds and Fantasy Faire. This is all based on the glTF standard, which SL is now starting to use for materials, and which LL says SL will use for meshes at some point. Once SL makes it to glTF, it might be possible to put an Omniverse Connector into an SL viewer, for real-time import/export. It would be semi in world editing - you see it in world, and when you edit it in Blender it changes in world, but you have to commit changes and pay the upload fee for others in world to see it. So there's a path that leads to what Arielle is asking for, but other things have to be finished first. This is unlikely to be a typical user thing. More like a tool for serious creators with enough screen space and compute power for both Blender/Maya and SL at the same time. The Omniverse thing is for production teams, not end users. There's a free version and a paid version. It may be too industrial-strength for SL.
  9. Maybe protections against objects that can debit should be stronger. Require both an experience permission and the yellow popup. LL takes abuse by experiences seriously, because they give objects considerable power over avatars and have griefing potential.
  10. I have the happy path for attaching to neighbor regions working in Sharpview. The long poll seems to work well with a 90 second timeout viewer side. As Henri points out, not using libcurl seems to help. (Sharpview is all Rust code, so the lower levels are totally different from C++ land.) I get that the seed capability is asynchronous. I realize that's part of the security system. I haven't dealt with teleports yet. I'm currently looking at how objects cross region boundaries. I spend a lot of time watching the New Babbage trams making their rounds. Miscellaneous questions: What indicates a region restart to the viewer? I accept EstablishAgentCommunication any time after sending UseCircuitCode. Sometimes it takes a while to show up, as in tens of seconds, and yes, it does seem to be driven by camera updates from the main region. Thanks for confirming that. As I said above, I thought I needed to do something to kickstart that. Logging in and just sitting there results in no EstablishAgentCommunication events from the simulator. I probably need to send some agent updates even if the agent isn't doing anything at first. I notice that if I get an EnableSimulator but don't bring up the region, I keep getting EnableSimulator messages. Is it a problem for the simulators if I don't bring up a region viewer side the simulators would like to have go live? I'm considering a setup where I have a draw distance long enough to fully cover 4 regions around the main agent, but only the closest 4 regions are brought u in the viewer. Some kind of region impostor will be shown beyond the nearby regions. Is this going to create any problems simulator-side? At logout, is CloseCircuit sufficient to close out child regions, or is some other handshaking required? I really appreciate the answers posted above. Us TPV people have to try to figure this stuff out from logs and the viewer code, and that works well only for the happy path.
  11. There are a few places to stay for free in SL.. There's Saint Martha's Lodging House in Port Babbage, which is very low end. There's the hobo camp in Calletta. There are many places at L$50/week, which is US$0.20. Many more at L$100/week. Loner Lane in New Babbage has some cute little flats. Some of those cheap motels you pass on Linden roads rent rooms. It's like real life. You have to look.
  12. I get only server side timeouts, expressed as an HTTP completion with some status. The viewer side never times out with a 90 second viewer side. If you can do a long poll, you're good. Remember, there's keep-alive down at the TCP level There are way too many different timout statuses. HTTP 500, 502, and just sending an empty reply all show up from SL. The Other Simulator follows the spec and sends 502 when it has nothing to say.
  13. Hm. Is there an actual need to ever time out viewer side, or is that just a workaround for libcurl's internal problems? In Sharpview, I'm just doing a long 90 second poll, and the HTTP/HTTPS library (Rust's "ureq" crate) obeys whatever timeout I give it and does not do retries on its own. So I don't have that problem. Do I need all this "danger timer" stuff?
  14. Right. SL world isn't ready for grid-wide strict enforcement of realistic lighting by default. What happens if you set Ambient to black in your environment?
  15. New Babbage. Babbage Palisade, looking towards The Fells. Sharpview testing.
  16. OK, so there is a workaround. Documentation would be appreciated. Does this "restarting a poll" refer to restarting it before the Curl library retries, or restarting it before the simulator finishes the HTTP transaction with an error or empty reply? I don't have Curl in the middle, and have full control of timing. Currently I have the poll connection timeout set to 90 seconds, and the server side always times out first. Definitely for events. The polled event channel should come with a firm guarantee that all "Essential" events are delivered exactly once, in order, absent a simulator, viewer, or network outage. This eliminates a large number of cases which probably don't consistently work right and are really hard to think about. Notes: In order delivery, reliable delivery, no head of line blocking - pick two. You cannot have all three. TCP picks the first two, as should the event poller. SL's reliable UDP system picks the second two. Unreliable UDP messages (TerseImprovedObjectUpdate and AgentUpdate, mostly) have only the last property. Those are loss-tolerant - if you lose one, there will be another one along soon, with later info about where the object or avatar is. Anything that doesn't have in-order delivery has to be commutative - it must not matter whether A arrives before B. This is mostly the case. It adds some special handing for some operations. Viewers have to handle object for child prims arriving before parent prims, for example. (Which they do, frequently. I track "orphans" in Sharpview and log any whose parents never show up. Out of order is common, but the parents do always show up and claim the child prims.) SL's protocols mostly seem to have this right, but I think there can be minor out-of-order problems that affect single prims. If it turns out that some UDP message really does require in-order delivery, it's a good candidate to be moved over to the polled event channel. A reliable event channel provides a path to a reasonably easy fix when some order-dependent problem is found. The old messages on the "UDP blacklist" already made that move.
  17. A bit more on my original question of when the simulator sends EstablishAgentCommunication. I've implemented what;s been described above, following Beq's discussion. I'm testing by logging into the beta grid at the center of Morris. This is the Morris/Ahern/Dore/Bonifacio quadrant, the traditional place for testing region boundary issues. What happens is interesting. At login, I'm facing northeast, and I see Morris and Ahern. Until the avatar moves a few meters in some direction, Dore and Bonifacio don't appear. This is with a long draw distance, so they should all come up. What's happening down at the message level is slightly strange. Here's a summary, from my own logging. 02:51:21 [WARN] Region (255232,256256) state change from Idle to Discovered: New 02:51:21 [WARN] Region (255232,256256) state change from Discovered to Connected: Region handshake 02:51:21 [WARN] Region (255232,256256) state change from Connected to SeedCapabilityReceived: Have seed capability from login/teleport 02:51:21 [WARN] Region (255232,256256) state change from SeedCapabilityReceived to CapabilitiesReceived: Capabilities received. 02:51:21 [WARN] Region (255232,256256) state change from CapabilitiesReceived to Live: Live 02:51:22 [WARN] Region (255232,256512) state change from Idle to Discovered: New 02:51:22 [WARN] Region (254976,256256) state change from Idle to Discovered: New 02:51:22 [WARN] Region (254976,256512) state change from Idle to Discovered: New 02:51:23 [WARN] Region (254976,256256) state change from Discovered to Connected: Region handshake 02:51:24 [WARN] Region (255232,256512) state change from Discovered to Connected: Region handshake 02:51:24 [WARN] Region (254976,256512) state change from Discovered to Connected: Region handshake 02:51:26 [WARN] Region (255232,256512) state change from Connected to SeedCapabilityReceived: Seed capability from establish agent communication event 02:51:26 [WARN] Region (255232,256512) state change from SeedCapabilityReceived to CapabilitiesReceived: Capabilities received. 02:51:26 [WARN] Region (255232,256512) state change from CapabilitiesReceived to Live: Live 02:52:25 [WARN] Region (254976,256512) state change from Connected to SeedCapabilityReceived: Seed capability from establish agent communication event 02:52:25 [WARN] Region (254976,256256) state change from Connected to SeedCapabilityReceived: Seed capability from establish agent communication event 02:52:26 [WARN] Region (254976,256512) state change from SeedCapabilityReceived to CapabilitiesReceived: Capabilities received. 02:52:26 [WARN] Region (254976,256512) state change from CapabilitiesReceived to Live: Live 02:52:26 [WARN] Region (254976,256256) state change from SeedCapabilityReceived to CapabilitiesReceived: Capabilities received. 02:52:26 [WARN] Region (254976,256256) state change from CapabilitiesReceived to Live: Live That's the sequence of attaching to a new region. EnableSimulator starts the process and moves the viewer's region to Discovered state in Sharpview's internal state machine. The UDP connection to the new region is set up. Receiving RegionHandshake causes the viewer to generate RegionHandshakeReply, and advances things to Connected state. Happy path so far. Next is getting the seed capability. For the login region, that came with the login, so we get to go directly to fetching capabilities. For neighbor regions, we have to wait for an EstablishAgentCommunication event, sent via the event poller to the avatar's region. Ahearn responds in about 2 seconds, at 02:51:25. Dore and Bonifacio, though, don't respond yet. A minute later, at 02:52:26 I move the avatar a few meters. Doesn't matter which direction the avatar moves or which direction they are looking. Then the EstablishAgentCommunication events for Dore and Bonifacio come in, the region goes live in the viewer, object updates start pouring in, and those regions get drawn. This is a strange place in the protocol to get stuck. This doesn't happen with Firestorm. So I suspect there's something I have to do to kickstart the new region. Maybe send it an agent update? Also, once in a while testing this, I get a 403 Forbidden status from the login server. A second try works. This leads me to suspect I didn't shut something down properly on logout. (On the OtherSimulator, EstablishAgentCommunication comes in before RegionHandshake, incidentally.) The Morris hub, beta grid, all four quadrants, in Sharpview. So, approximately the right stuff is happening. The devil is in the details.
  18. This is complicated. Can it be simplified? The intent here is simply to create a reliable pipe with backpressure, similar to a basic TCP connection. If that's possible, a raw TCP connection would be much simpler. But that wouldn't be encrypted. The system used for browser push messages isn't a good match, either. So long-poll HTTPS, treated as unreliable delivery of big packets, it is. The happy path is fine. All the problems involve problems which force things off the happy path. Some lost events are more serious to users than others. Loss of a TeleportFinish means a failed teleport. Loss of a CrossedRegion means a failed region crossing. Loss of an EnableSimulator means a missing region. Many SL users have seen those immersion-breaking occurences, and they are seen as serious bugs. For the last two, the viewer is stuck in an out-of-sync condition that is hard to recover. On the other hand, losing a ParcelProperties or an AgentGroupDataUpdate might cause a ban line not to appear in the viewer (it's still enforced; that's server side) or the groups list for a user to be temporarily out of date. Those are not immersion-breaking problems. This argues for classifying events as Essential or Non-Essential, and not losing the Essential ones. The Essential messages tend to be infrequent. So, if there were separate Pending Queues for Essential and Non-Essential events, with Essential events having priority and having their own small dedicated queue, loss of Essential events could be eliminated. If the viewer is so out of communication with the simulator that Essential events have to be dropped, things are probably headed for a disconnect and logout. (Possible bad case: user sets draw distance to 1024m, and the viewer has to be told about sixty regions, each generating an EnableSimulator message. Is there anything worse than that?) (Related note: the main agent region might have a larger Essential queue than child agent regions. Most of the Essential messages will come from the main agent region. There's an upper memory usage bound of max Essential queue length x max number of main agents, so this can't grow without bound.) The lost event metadata item, if and when generated, can be put on the Essential queue, but only one such event should be on that queue at a time, to prevent clogging that queue with debugging data. As to numbering, it looks like ID numbers are simply sequential starting at 1, which is reasonable. All the server has to be able to do is resend the last poll reply, or advance to the next one. There's no going backwards into the past. That seems to be implicit in the state machine above. It's conceivable that the viewer might get a duplicate of an old poll reply, perhaps due to something at the Apache level, and that needs to be ignored by the viewer. It must not set the ID number back. If the viewer gets ID 101, ID 102, ID 103, ID 101, and then ACKs ID 101 again, the protocol is stuck, because the viewer is asking for a value the server cannot provide.That's probably a NACK condition, for which the previous ID # is sent. The "reset" mechanism seems to be a backwards compatibility feature. Viewers currently just send back whatever ID they saw last. So a duplicate old event breaks the sequencing. The server can get things un-stuck by going back to 0 and starting over. Maybe. Do existing viewers understand that? Not sure about this.
  19. People are getting too wound up about this. What I'm plugging for is some way to do group tours. Some organized way to introduce new users to SL in groups. Something like a mentor-led tour every half hour or so, starting and ending at WelcomeHub. SL's system won't support driving a bus of avatars through a portal, which is what's really wanted. Region crossings are broken enough that driving a bus of avatars around on mainland fails constantly. A group has been trying that on Drivers of SL drives, and somebody falls off at almost every crossing. Talking a group of new users through a group teleport requires a lot of teleport offers and IMs. Even when it's done with experienced users, people get lost, as I've seen in Lindall Kidd's old land classes. So I described a way to do this using existing SL features. Useful near term goal: New users should not experience an immersion-breaking bug on day one.
  20. See this overview of Second Life networking protocols. If you're familiar with how MMOs work, that will give a good base for thinking about how SL works. You asked this question before. As I commented last time, if you got a megabyte behind on UDP, there's some unusual bottleneck. Possibly trying to draw too much. Turn down your draw distance and see if UDP catches up. In the classic viewers, rendering and message processing compete for main thread time, which is one cause of sluggishness.
  21. There used to be an avatar cannon just west of the mall in Kama City which would shoot the avatar to a club a few hundred meters away. Worked fine, but the club was empty.
  22. Back online. Telco had to replace 150 meters of fiber optic cable.
  23. Well, it beats shooting avatars out of cannons, which is an actual transportation system at WelcomeHub.
  24. Now that there's work underway at LL on making teleports work faster and more reliably, it's worth looking at experience teleport transport systems again. Make it look like this before and after teleports (From this SL video on Reddit.) Here's the concept: Avatar gets on a tram car and sits. Tram goes into tunnel. Tram stops, and a moving wall effect like the one above starts to indicate motion. So you don't need much tunnel. Most existing subway stations in SL would work. The avatar is teleported via an experience to a freshly rezzed identical tram car elsewhere, and seated in the matching seat to the one they were in. It's a teleport, but it doesn't look like one. More moving wall effect. Tram comes out of tunnel at station. (Or maybe goes onto SLRR track or a road trip like YavaPods.) This is intended for short tours. When you get there, you get a tour of some interesting place in SL, and if you don't get off, you eventually ride back to your starting point. New user entry points might have a few of these, to show off parts of SL in a somewhat controlled way. An audio track of a tour guide might help. (Playing the theme from "It's a Small World" is tempting but has copyright problems.) SL already has Portal Park, and Firestorm's help island has a ring of portals, but they're not used much. Also, those are one-way - it's not obvious to new users how to get back. WelcomeHub has no obvious way out. There's a little train station at the south end of the Linden Homes area, and a long rail bridge to Bellessaria, but you have to rez your own train. There's some signage which suggests looking at the Destination Guide. But nothing like an organized tour, with a stated duration. The only way out is a teleport into the huge, cold, hard world. SL, as anyone who talks to new users knows, has a big "what do I do now" problem. (The other classic new user question is "how do I fix this %#^&! clothing problem?") This is a way to provide new users a safe introduction to SL beyond the WelcomeHub. It's a theme park ride. New users will get that immediately.
×
×
  • Create New...