Jump to content

animats

Resident
  • Posts

    6,144
  • Joined

  • Last visited

Posts posted by animats

  1. 1 hour ago, Zalificent Corvinus said:

    "Hi, I'm some random Academia-Wannabe, who logged in here in the hope that I can get strangers in this game-world-thing that I don't have a clue about, to write the crappy thesis paper for my 'Piled Higher & Deeper' for me! Please respond!"

    Right.

    This happens regularly. Usually it comes with a link to a Google or SurveyMonkey form.

    If you want to interview people in SL, log in and talk to people. To be taken seriously, set up a storefront in world for your project and advertise it a bit.

    • Like 3
  2. If you make all LODs the same as the highest LOD, your object will look great but the land impact will be higher.

    As a rule of thumb, each LOD should have about half the triangle count of the next highest LOD.

    The lowest LOD should never be forced below 20 triangles or so. Look at your objects in lowest LOD (set Firestorm's LOD factor to 0.0). If you can see through them, you're doing it wrong.

     

     

  3. This looks like something for a parachute that's open all the time. The timer is always running, so 10 times a second, the script activates. Maybe have a 1 or 2 second timer to detect falling, then turn on the parachute behavior and go to a fast timer when Z velocity < -EXCESSIVEFALLSPEED.

    If you just want a parachute to use, Drivers of SL gives out a good freebie.

  4. 8 hours ago, Henri Beauchamp said:

    I already determined that a duplicate TeleportFinish message could possibly cause a failed TP in existing viewers code, because there is no guard in process_teleport_finish() for TeleportFinish received after the TP state machine moved to another state than TELEPORT_MOVING, and process_teleport_finish() is the function responsible for setting that state machine to TELEPORT_MOVING...

    Interesting. That's very similar to the problem of a double region crossing. We know that if a second region crossing starts before the first has completed (a common case at region corners) a stuck state results. The problems may be related.

  5. All this looks very good. "At least once" is fine. If we have problems with duplicates, that's detectable and fixable. Order preservation means some pathological out of order cases should not come up viewer side.

    Consolidating events is useful for object updates. But that's UDP side. I don't see anything in the Appendix A list that looks like a good prospect for consolidation for performance improvement.

    Looking at the list of events in Appendix A, what can generate an event overload? PBR material updates, which could, were just moved to UDP.  That was the only time I ever saw much event traffic. The "chatterbox" stuff? Beq Janus may have something to say about that; she's been struggling with group chat synchronization. The "bridge" mechanism? Should we be prepared for any UDP message to appear on the event channel in the future?

    Viewer event poll timeout bad, simulator timeout normal. Sounds good.

    Looking good.

  6. 2 hours ago, Ardy Lay said:

    If routine transportation is EXCITING, then you are doing it incorrectly.  But this is Second Life, so, go for it!

    The ride is fine, but an hour of travel through Bellessaria is a bit much.

    It's realistic, in a way. Some years ago I had to visit some place in a huge planned-unit development, one of those places that's mostly cul-de-sacs. After I was done there, I was lost driving out. So I pulled up to a group of teen-agers and asked "How do I get to the real world?" They understood instantly and gave me directions to the freeway.

    • Like 3
    • Thanks 1
  7. http://www.sweethome3d.com/freeModels.jsp

    Miscellaneous open source low poly models in .obj format, for a low-poly home design program. ".obj" format, import into Blender OK. Creative Commons 3.0 license. Some models require attribution.
     

    boltcutter.jpg.a514be56cd493474a315bd410313c2df.jpg

    Item which cops might find at crime scene.

    Many of the models were made for the forensics unit of the Gendarme of France. So there's a good collection of objects commonly found at crime scenes - guns, stacks of money, bolt cutters, angle grinders... Useful for setting up roleplay areas.

    All the models are sized at 1 unit = 1cm, which is 100x too large for SL. So they need a resize in Blender.

    • Like 1
  8. ChatGPT for NPCs is a real possibility. But we need a big training set of SL information from an in-world perspective, and a medium sized training set for the NPC's role. Anyone working on this?

    Meanwhile, as I mentioned in another topic, there's DeepBump, an open source Blender plug-in which uses machine learning to generate normals for textures. Since I discovered that, I've used it on every brick and rock texture I have, and they all look better. It's really well trained for surfaces with mortared joints. It's not just using intensity; it knows what common surfaces look like. Rock, brick, and bark look extremely good. Carpet nap sometimes works. Seams on clothing sometimes work. Dirt and grass, maybe. You don't have to have a 3D model of the object in Blender; you can just take in a texture, map it onto a face of a cube, run DeepBump, and save the normal texture. Sp you can use this on existing in-world objects for which you have access to the texture image.

    • Like 1
    • Thanks 3
  9. 1 hour ago, Rat Luv said:

    I would love an underground tube/train system connecting certain areas on mainland, with each destination having its own station 

    Something like that was tried recently. Many of the modern Japanese areas have subway stations, and someone had set up some of them as teleport hubs. But I just went to one, and it didn't do anything any more.

    Remember East River International Airport? They had a good transit system over several regions. They'd move the transit car to a tunnel way up in the sky, travel there, and then bring the car back down to a short tunnel at ground level.

    That could be done over longer distances. Have a standard subway car and an experience at the station. You sit in a subway car, and it moves into a tunnel where the tunnel walls are animated to appear to move. Then you're teleported to an identical subway car elsewhere and seated in the same seat, which an experience can do. Then you come out of the tunnel and into a new station. There used to be a system sort of like that which connected New Babbage and some of the other steampunk regions by train. But it was unreliable. I think you can still take a train from New Babbage Main Station, and you get teleported to a landing point elsewhere after a while. It's kind of a letdown and nobody uses it.

    If the project to make teleports more reliable succeeds, this becomes more feasible. Then you could travel as a group.

    WelcomeHub should have a station. Get new users out and about.

    (WelcomeHub does have a train station with a rez zone, with a bridge to Bellessaria, but new users don't have a train and there is no free rezzer. I rezzed one and rode all the way to the end of the line, which takes about an hour. Worked fine, but it's boring. It's endless suburbia, after all.)

    • Like 8
  10. This is great!

    Some notes:

    "At least once" delivery

    The most important change is the move to "at least once" delivery instead of "no more than once". That alone will solve some major problems. There may be some viewer-side problems with duplicate events, but those can be detected viewer side. The events

    • EstablishAgentCommunication
    • CrossedRegion
    • TeleportFinish

    are probably the ones that need viewer-side duplicate detection, because they all imply major viewer side state changes. No big problem detecting that viewer side. Duplicates are far better than losing any of those crucial messages. Losing one of those means a viewer stalled at login, region crossing, teleport, or neighbor region appearance.

    Are there any others not in that list for which processing a duplicate message causes serious trouble?

    Event poll timeout semantics

    Henri and I were arguing above over how to handle this. It's even worse than either of us thought.

    I'll plug again for the server sending an empty array of events when it has no events to send. Stay on the happy path of HTTP status 200 if at all possible. With Apache on one end and Curl on the other, plus a possible Squid proxy, plus possible VPNs, firewalls, and middle boxes, the error code cases just aren't going to reliably make it through the chain. Existing viewers should be able to handle this without modification, since it's their happy path too.  As Monty Linden said above, "Simplify rather than bolt on more special case code. We're dying from state-space explosions".

    Event order

    Once we have at-least-once delivery, is it worth guaranteeing in-order delivery of event poller events? Out of order delivery is a feature on the UDP message side, but it doesn't seem to add value on the HTTP event poller side. Out of order delivery makes this much harder to think about and adds code complexity. What is the server-side benefit of out of order event queuing? Something to think about. A discussion topic at this point, not a proposal.

    Metadata

    Useful debug tool. That will be useful in correlating visible problems with transient server overloads that caused event drops. SL has more crowds now, which is good. Look at "What's Hot Now" in the viewer and you'll see many regions with over 50 avatars. Now the problems that appear under big-crowd load become important.

    Retry

    "And none have magical retry systems that make errors go away without effort."

    Right. For login failure, the viewer could conceivably try the login again automatically, instead of the user having to do it manually. There are situations where that would help, where a simulator has gone down but the login server is not yet aware of that fact. But those are rare.

    The viewer is somewhat lost if a TeleportFinish doesn't arrive, because the viewer has no idea its avatar has left for parts unknown.

    Failed region crossings are potentially recoverable. The usual failed state is vehicle in new region, avatar in old region, avatar state is sitting but on nothing, vehicle seat state in new region is "sat on." with nothing on the seat. It's possible to move the vehicle back to the old region and get everything re-connected, although it takes a sit/unsit/sit cycle to get things cleaned up, and the cleanup is incomplete regarding sit target state. It's far better to avoid getting into that situation than to try to get out of it. Once event lossage is fixed, we'll be able to see what problems remain in that area.

    Conclusion

    This is a huge step forward.

    • Like 2
  11. This looked familiar.

    casinotower.thumb.jpg.4b61aa15585d747c6e43772a20275008.jpg

    Casino sign, Helios Casino at the WelcomeHub.

    Here's what it's copied from.

    default.jpg

    Spire, Marin County Civic Center, California.

    This is a famous work by Frank Lloyd Wright. It's part of the Marin Civic Center, a US National Historic Landmark. Built in 1957, it still looks futuristic, and has appeared in science fiction movies. The spire is a standalone decorative structure, not a tower on top of a building. It's from Wright's tall pointy object period. His drawings of unbuilt works, notably the proposed Arizona Capitol and Broadacre City, contain more tall pointy objects. This is the largest one actually constructed.

    • Like 11
    • Thanks 1
  12. 6 hours ago, Paul Hexem said:

    Without having read all of the other thread, how likely are we to see a reconnect option?

    I think it would have to be initiated by the server. The server tells the viewer to do a teleport by sending a TeleportFinish message. That tells the viewer the info needed to connect to the destination region's simulator. But that info has a specific UDP port and seed ID, and I think those are "used up" if the teleport fails.

    7 hours ago, Profaitchikenz Haiku said:

    Whatever is happening seems specific to SL:

    Yes. The Other Simulator does not behave quite the same way. I've been logging that, and it's mentioned in the other discussion.

    What got me into this problem is that I first tested my Sharpview viewer's connection to neighbor regions against the Other Simulator. Sharpview is all new code, with completely different bugs. I got that connection working, then tried SL, and the protocol got stuck waiting for a message. The devs for the Other Simulator try to emulate what SL is doing, so this resulted in discussions at their dev meeting over what was supposed to happen. Nobody was quite sure on the Other Simulator side. I started the other discussion here, and it came out that no one was entirely sure what was supposed to happen on the SL side. Then we all realized we had a problem.

    This is how you find protocol bugs in the real world. When there's only one implementation, you can have bugs where things seem to work, but you're not sure why, and maybe they fail intermittently. When you have multiple inter-operating implementations, there's a period of much frustration during which all the players compare notes and eventually converge on success. For the parties involved to sometimes be annoyed with each other is normal. For SL, it's the third party viewer developers who see this problem most clearly, because they talk to both SL and the Other Simulator. So TPV developers do a lot of logging and looking at logs.

    Now that SL has a mobile viewer in development, they have two implementations of their own, which means they have to face these kinds of problems internally. This provides motivation for LL.

    When you look at SL immersion-breaking failures, most of them appear to be problems where one end is waiting for a message the other end isn't sending. Actual crashes, where the viewer suddenly exits or a region goes down, are rare. The common intermittent problems - teleport fail, region crossing fail, stuck in login connecting to region, objects not appearing, clothing not appearing, avatars stuck in cloud mode - are all cases where some essential message didn't arrive. That doesn't mean there's a single underlying bug, but there's likely some commonality to those problems.

    • Like 1
    • Thanks 1
  13. Some of us on the third party viewer side are trying to figure this out. See this long, very technical discussion of what's going on down at the message level. Monty Linden has been looking into this. So have Henri Beauchamp, Beq Janus, and myself. Henri has added more logging to his viewer. Beq and I have been looking at logs and drawing event diagrams.

    There is general agreement that some necessary messages do get lost.  "Why" is still elusive. The code involved dates from the early days of SL. All this attention is starting to make some old, mysterious problems look less mysterious. Progress is made by getting from "my teleport failed" to "viewer sent message X to simulator, which we think should have been replied to with message Y, but message Y did not arrive at the viewer." That's not a fix, that's just trying to understand the problem.

    None of this is fun. But it is necessary. There's now a reasonably good chance that some long standing problems will get fixed. At last, people are putting a microscope on the part of the machinery that is giving trouble. I'm encouraged.

    • Like 3
    • Thanks 4
  14. You can rate forum posts and marketplace items now. We have parcel traffic counts. None of which are all that useful. The most useful review-like feature is 1-star reviews of Marketplace items, to report that some item is an empty box, not what is advertised, or really terrible. That's also true for Yelp and Amazon; the 1-star reviews are the only ones worth reading.

    Stick with rating things, not residents. Less drama.

     

    • Like 5
    • Thanks 1
    • Haha 1
  15. 19 hours ago, Finite said:

    A few creators sell the same mesh models bought from sites such as cgtrader or turbosquid,

    That's legit, if you buy the appropriate rights, although those models tend to be too complex for SL.

    One of my escalators started as a purchased model like that. Then I had to separate out the stair railing and steps so those could be animated. The endless railing had to be turned into a single line Blender path loop and used to extrude a simple cross section. The steps had to be turned into one simple step with a Blender repeat. The frame had far too much geometry and was pretty much redrawn. The foot plates at top and bottom had a real world company logo, and I re-did those to have an Animats logo to avoid a trademark problem. The railing got a rubber texture overlaid with a diamond pattern so you can see the railings move. (Those exist in real life. You can even get moving escalator railings with printed advertising.) I had to write a Python Blender plug-in to re-size the thing for different sizes. The physics and lower LOD models were entirely new. UVs needed a complete rework. By the time I was done, the original purchased model had mostly been used as a guide to the dimensions of the real escalator.

    I purchased a very nice motorcycle model, a conceptual design based on a real world motorcycle but never built. If I put in a month or two of work, I might have it pared down for SL. Every little clip that holds a wire or cable is fully detailed, and part of the body mesh. So is every bolt. Similarly, I  bought a model of Turbinia, the first turbine-powered boat. Too much detail in the wrong places. The raised letters TURBINIA are part of the hull mesh. But no pilot house interior. Paring those down for SL would be a lot of work.

  16. 9 hours ago, Henri Beauchamp said:

    Double acks will also happen whenever a poll request ”fails” (or simply times out) for a live region, and the viewer restarts a second poll: here again, the ”id” of the last received message is repeated in the ”ack” field of the poll request.

    Right. If you time out, you have to re-poll with the last ID you received.

    That's why I suggested that event poller timeout should be server side and should consist of sending a normal LLSD reply with an empty array of events. That unambiguously says everything is fine, no traffic right now. The ID then advances by 1 and both ends stay in sync.

  17. 3 hours ago, Micaiyahwen said:

    I just don't have the patience and end up being frustrated. I may have to re-think my project.

    That's a problem with animesh and NPCs. It's possible to do quite a bit. It's not easy, and little about it is user-friendly.

    Still, the fact that the Zooby crowd has been able to come out with lines of baby clothes shows that it's possible to create a niche market.

    An alternative is to take some game-type model and turn it into animesh. There seems to have been a purge on Marketplace of animesh from the Star [Wars|Trek|Gate|Craft] universes and the Marvel Overextended Universe. With those gone, there's far less animesh out there.

    Now, there are plenty of un-rigged 3D human characters for SL.

    businessmanmed.jpg.cac912d3289c0183b3999fcb88c36c09.jpgwoman3.jpg.17d13f6bcd29486bbc58c9f597404133.jpg

    Generic background characters, suitable for populating airports, stores, and such. Unrigged.

    People put these in stores, but since they can't move, they're not too interesting.

    There's a good supply of these on Marketplace. But they cannot be animated.

    I'd like to have more good human models like that, rigged for animation as animesh and not ripped from some game.

  18. On 9/15/2023 at 3:01 PM, Monty Linden said:

    The overload scenario isn't just theoretical, it is happening to the tune of 3 million per day. 

    That's great news! Those are clear problems to work on. When solved, the remaining problems should be more repeatable, and a big step closer to being fixed.

    Quote

    I also have 6K per day where viewers send 'ack' values the simulator didn't supply.  No idea what that is (yet).

    Hm. If you need more checking viewer side for that, just ask. Is this UDP side or event poller? I see sequential numbers from the SL simulators for both. The Other Simulator does sometimes skip sequence numbers.

    I get a few duplicate UDP messages; not many. I just noticed that I log any ACK that doesn't match an un-ACKed message as a "duplicate ACK", so totally spurious ACKs will be logged as "duplicate". I'll take a look for spurious message numbers coming from the simulator.

  19. 40 minutes ago, Micaiyahwen said:

    The dress I had purchased...as I stated above was in the T-Pose....but the Statue/NPC I have her arms are NOT in the T-Pose. They are relaxed and somewhat across her chest and belly. So when I try to put the gown onto her, the gown is in the T-Pose and wouldn't work.

    Try linking them together and then check the "Animated mesh" box in the Edit menu. Suddenly the clothing and Statue/NPC should jump into alignment, as the "rigged mesh" system turns on. There may still be fit problems, though.

  20. sampleanimesh.png.aa02a256ca54fdb1024a3986650f9a14.png

    Sample animesh characters. Not for sale.

    From left to right:

    • Mesh hair, hoodie and shoes, all specifically made for animesh use. Texture leggings.  37 LI.
    • Dress from Marketplace. This is a bad dress for animesh, because it lacks a useful lower LOD and disappears at distance. 48 LI.
    • Basic model. Mesh hair and shoes, texture T-shirt from Robin Wood template. There are texture shoes available with the basic model. 33 LI.

    Here's the problem with using avatar clothing on animesh.

    haltertop.jpg.010c306323e0f570158d28b97c3481bf.jpg

    Add a simple cap and halter top to the character at the right above, and the LI jumps to 87.

    Elaborate outfits result in LIs from 130 to "Parcel Full".

    • Thanks 1
  21. 3 hours ago, Rowan Amore said:

    imatsworks with NPCs so perhaps he can shed some light on how or if you can do this.

    It's possible, but somewhat difficult.

    First, you need an animesh body. I bought one from Uno Blockke. This is a nude body, generic female junior, with standard SL UVs and with the body texture files. Check the "animesh" check box in the edit menu to turn on animesh mode. The model's LI will increase by 15 when you do this.

    Starting from this, you can build up an NPC. It's a pain. Animesh do not have "Wear" or "Add"

    You can add texture clothing to the body. First step is to get the body texture files into Photoshop or GIMP. Now, for texture clothing for which you have the texture files, you can composite the clothing on top of the body. When you upload the texture file you just created and put it on the animesh, the clothing should work. Any texture clothing with standard SL UVs should work. The old free T-shirt templates from Robin Wood will work. Make a T-shirt for practice. It's not too hard to get to the t-shirt and leggings level of texture clothing.

    Mesh clothing is added by linking it to the animesh. There are no fit adjustments, so it has to fit. Try stuff. If you need an alpha, you'll have to go back to your texture image and erase parts of the image. You need full perm if you're not the creator, or the linking won't work.

    Most existing mesh clothing has huge LI. For animesh, 666 triangles at Highest LOD = 1 LI. It's a good idea to try random clothing in a big sandbox with plenty of free land capacity. There's a tiny amount of animesh-specific clothing. Meli Imako makes some hair for animesh. There's stuff for Zoobie babies. There's some slave girl sex doll stuff. Not much else. I had some low-complexity clothing custom-made, a hoodie and sneakers.

    When I got into NPCs, I'd hoped that a market in clothing for animesh would develop. It didn't.

    Now, to get your NPCs out of a T-pose, you'll need animations, and some LSL program to turn them on and off. There are script systems available for that.

     

     

    • Like 1
    • Thanks 2
  22. 14 minutes ago, UnilWay SpiritWeaver said:

    Unless it's inworld in Second Life - in which case no one will do anything about the sign. Ever.

    It's routine to report overly blatant FOR SALE signs. After a while, governance makes them disappear. I usually report ones that check off at least three of the above no-nos. Giant FOR SALE columns, glowing, and rotating, can be the biggest ugly thing in view range.

×
×
  • Create New...