Jump to content

animats

Resident
  • Posts

    6,153
  • Joined

  • Last visited

Posts posted by animats

  1. Well, what can we find out about the buyers?

    "J. Randall Waterfield is Chairman of The Board & Chief Executive Officer of Waterfield Group, one of the largest private financial organizations in the United States. Waterfield Group traces its roots back to 1928, when Richard H. Waterfield founded Waterfield Mortgage Company and Waterfield Insurance Agency in Fort Wayne, Indiana. After selling the largest private mortgage company in the US and largest Indiana based bank in 2006 and 2007 respectively, Waterfield Group has diversified into technology, real estate, asset management and merchant banking. Waterfield today has over $2 billion in managed assets. Since 1999, J. Randall Waterfield, along with his brother, Richard R. Waterfield, have participated in the supervision of Waterfield Group, which includes Waterfield Enterprises, The Waterfield Funds, and registered investment advisor, Waterfield Asset Management." - Bio from Waterfield PR.

    "I [Bradford Oberwager] have founded and/or run five tech/CPG companies—Jyve [grocery store restocking using gig workers], Bare Snacks (acquired by PepsiCo), True & Good! Snacks, Acumins/more.com (acquired by HealthCentral), and Blue Tiger/Open Webs (acquired by CarParts). Of course, I founded more than these five, but I have had my share of failures as well. Learned a lot from them." - Bio from LinkedIn

    • Thanks 1
  2. There's a way to run Flash in SL for years to come. It's complicated.

    ruffledemo.jpg.ed2d5897a2e60fff91a38b6711d556d9.jpg

    Flash, on a prim, in SL. But not Adobe's Flash implementation.

    There are others who want to keep Flash alive, and they have written an implementation of the Flash player in Rust, called Ruffle.

    It's still under development, but you can try .swf files on it now and see how it works.

    Ruffle can be compiled to WebAssembly, which can be downloaded into a browser, where the WebAssembly is compiled into machine code and executed. The Flash emulator now running in the browser runs the .swf file. The headless version of the Chromium browser in SL viewers can do this. You then have Flash running using modern technology.

     

    string URL = "http://ruffle-rs.s3-website-us-west-1.amazonaws.com/builds/web-demo/index.html?file=synj1.swf";
    integer FACE = 4;
    
    default
    {
    
        touch_start(integer total_number)
        {
            llSay(0, "Touched.");
            llSetLinkMedia(LINK_THIS,FACE,[PRIM_MEDIA_HOME_URL,URL]);
        }
    }

    Here's some LSL for a demo. Just put this in a cube and touch the cube. You can change the "file=" parameter to run other Flash files. See the Ruffle documentation.

    Ruffle isn't a full Flash implementation yet. If your game won't run, create an issue for the Ruffle project.

    • Like 2
    • Thanks 1
  3. With a fair amount of work, you could do Minecraft/Roblox/Factorio factories in SL. They'd look better in SL.

    You could start by developing some components that work together. Conveyors and generic "machine tools", to start. At the beginning of the production line, the first machine creates new items and puts them on a conveyor. Each machine on the production line (initially just a cube, then make it look better) takes in an item from a conveyor, does something, and the item comes out on the output side with a new texture. If the item has a model of the finished product, you can use texture changes to show it in all its pre-finished states.

    Each machine and conveyor has to talk to its neighbors, or use sensors such as llCastRay, so items wait until the next station is clear. You could have join points, where a machine has two inputs, such as a chassis and a body, and both have to arrive before the operation can happen. You can have split points, where items can take different tracks.

    Now you can have actual factory timing problems. If the painting machine takes twice as long as the stamping machine, the painting machine will be a bottleneck. So you can put in a split and have the stamping machine feed two painting machines. Then the lines join and go to the packaging machine.

    If you build all that, you've built a discrete event simulator in Second Life.

  4. That's a fascinating concept. This is what Simio does:

    Use this simulator to run a factory in Second Life?

    It's a cool concept but a big job to implement. SL objects can talk to the outside world if programmed to do so. You'd need to have the simulation running on a server, and objects in the SL world making HTTP calls to find out what they're supposed to do next. There are open source simulation frameworks like SimPy which could probably be made to talk to SL. You'd have objects in SL calling out to a Python program elsewhere, asking "I'm box 345, where do I go next".

    If you want to see a conveyor in SL, visit the drilling platform in ANWR. That's where prims come from.

    Is this for fun, for an assignment, or do you really need to simulate a production line?

     

  5. Quote

    llGetRegionDayLength

    That's region day length. Parcels now get to play with day length, too. (Although it looks awful when they do. You enter a parcel and the sun goes zipping across the sky. Please don't use that feature on small parcels on mainland.)

    Does llGetSunDirection pay attention to parcel EEP settings? It should, and the wiki hints that it does. Anyone tried?

    By the way, doing this for a rainbow is a great idea. Some things really need to turn on or off with daylight. I've seen a parcel that has "god rays" coming through their trees. It looks great in daylight and really bad at night. (Also, if you make something with glow, check your lower levels of detail. The "god rays" object turns into a huge glowing blob at distance at night. I thought it was a griefing object.)

  6. On 7/2/2020 at 7:16 PM, Pussycat Catnap said:

    To the east and north is a series of weird looking shapes on the map that surround some water in the middle of which is a 'gaming' region made by the lindens. The weird spots are a precursor to Linden homes - but they give double prims and sell for usually silly high prices. And the house rezzer is optional - so a lot of people ignore the theme.

    Yes, that's Horizons.

    horizonssims.thumb.jpg.a9250fb66d6febb4de077c39cc6a2c94.jpg

    Horizons - Where the future is now!

    Horizons is interesting. It's supposed to have a 1960s futuristic theme. All the parcels are 32x32 meters, and come with a house rezzer which, unlike Bellessaria, you don't have to use. Like Bellessaria, parcels have Linden-owned buffer space around them. Horizons is all adult sims, but there are few sex-oriented places. There are few people around. Land is very expensive; I saw a parcel at L$82/m^2. Rentals are available. Much of the land is owned by big landlords, who put shell buildings on vacant parcels to make the place look more developed. Ban lines are common and most parcels seem to have camming and audio locked down. So Horizons looks even emptier than it is.

    • Like 1
  7. We're never going to get good lowest level of detail models in SL. The mesh reducer is terrible when pushed too hard, and doing it manually is a huge pain.

    What's really needed is automatic impostors for objects. We already have them for avatars.

    impostorgarden1.thumb.png.8ee97189cdf48da7ff11ba8b8fe7642d.png

    My old impostor garden. For each pair of objects, the one on the left is a full 3D model, and the one on the right is a billboard impostor. 

    The impostor is a flat two-triangle surface showing one of eight fixed images, depending on the viewpoint. Impostors have a very low rendering cost. The idea is to switch to the impostor when reaching "lowest" LOD mode distance. Lowest LODs are almost always terrible, and impostors look better and render faster.

    I used to argue with Beq Janus about this. I wanted to generate impostors when creating objects, as above. Beq wanted to create impostors on the fly in the viewer.

    The problem with doing impostors during upload is that the user can change textures on objects after they are made, making the impostor invalid. So impostored objects have to be no-mod with no moving parts. Plus this doesn't do anything for existing objects. That's the real problem.

    Doing impostors in the viewer has a network performance issue. The viewer has to bring in a high LOD version of distant objects, render it off in an empty rendering context to make the impostor images, then show rendered images. That increases download load while decreasing rendering load. The effect would be that entering a new area would cause a big network load and distant objects would appear more slowly. Frame rate would be better.

    I now agree with Beq about this - it's better to do this in the viewer. Otherwise, old, bad see-through LOD models will still appear. We'll never get all the old content fixed. It's a big job, but it's all viewer-side. So a third-party viewer could do it.

    I think this is the way to go. It's a big  job, but it's far, far easier than trying to re-educate thousands of creators and replace tens of thousands of old objects.

     

     

  8. A possibly-related problem is in development versions of Firestorm with EEP. Diffuse sunlight is too dim. At high noon, outside walls running east to west are far too dark. I haven't reported this because I'm seeing it in pre-release self-compiled Firestorm, but others who self-compiled have confirmed it. The gamma correction in Firestorm may be different from that in the Linden viewer.

  9. Region crossings with vehicles still fail about twice an hour when traveling with vehicles scripted to deal with some of the problems. What I've been noticing in the last two months is that almost all failures now have the same form:

    1. Vehicle crosses OK.
    2. Avatar on vehicle doesn't cross and is stuck.
    3. After 5 to 20 seconds, usually the avatar catches up and movement continues.
    4. If the avatar doesn't catch up, after about 1 minute, the simulators give up and detach vehicle and avatar, usually returning the avatar to  a semi-normal state.
    5. The detached avatar doesn't properly get controls back, and there's a 10 second delay each time it crosses a region by walking.

    This pattern is very obvious with some other fixes in place. My own motorcycles are scripted to stop after a region crossing (they turn off physics briefly) and wait for the avatar to catch up. That takes about 40ms when things are going well, and many seconds when things go bad. All this is logged to a server. Also, with the movement fix in Firestorm turned on (Preferences-Move and View->Movement->Stop when error becomes too large), bogus movement due to a viewer side problem is clamped. With the other "movement goes crazy at region crossing" problems under control, this big one shows up in a consistent way.

    I didn't see this much consistency a year ago. I know LL has fixed some bugs in this area, involving attachments coming off during region crossings. What's left is starting to look like a well-defined, fixable bug. I brought this up at Server User Group again, and some of the Lindens are taking another look. See relevant JIRA.

    • Like 1
    • Thanks 2
  10. KFM_LOOP has some unusual properties. At the end of the cycle, the object is instantaneously moved back to the starting position. That's how my escalators and moving sidewalks work, by the way. They move forward slowly, then instantaneously back one step or one texture repeat to give the illusion of steady escalator-like movement.

    It's possible to shut down looped motion and then reposition, but you have to stop keyframed motion with KFM_STOP or "[ ]", and then allow a few seconds of dwell time for things to settle. I don't think that the SetPos family of functions is interlocked with keyframe animation. My code for this in the escalators looks like

    stop_belt()
    {                    
        llSetKeyframedMotion([],[]);                
        llSleep(CYCLETIME*5.0);                     
        llSetPos(gStartPos);                        
        llSetRot(gStartRot);
    }   

      Where CYCLETIME is the time the looped animation cycles, 0.5 second here.

    Starting up motion looks like

            llSetPos(gStartPos);                            // align to top position
            llSleep(2.0);                                   // allow time to settle                                             
            llSetKeyframedMotion([motionDir, CYCLETIME],[KFM_DATA,KFM_TRANSLATION, KFM_MODE,KFM_LOOP]);

    So plan on several seconds of delay time for the system to settle before issuing commands in different modes. I've had strange things happen when I didn't do that.

    Running KFM_LOOP forever seems to be reliable for translation. Rotation, not so much. I tried building a spiral escalator once, and that wouldn't repeat consistently.

    You can see this working with my escalators at http://maps.secondlife.com/secondlife/Vallone/243/44/36

    Those are running a KFM_LOOP animation. It's partly sim side and partly client side; if you walk on the escalator, it carries you up by friction.

    At the left side of each escalator near the floor is an emergency stop button. If you push it, the escalator will stop for 30 seconds. You can see it stop, then the 2.5 second delay, then it moves to the home position with an llSetPos. After 30 seconds, it moves to the home position again (which is different for up and down motion), waits 2 seconds, and then the keyframe animation starts.

    So, allow lots of time for things to settle between using KFM and SetPos.

    • Like 2
    • Thanks 2
  11. 1 hour ago, Dimitri Silvansky said:

    TLDR - Netgear Nighthawk R7000 was the culprit.

    Oh. See this report from a voice over IP service that uses UDP:

    "Firmware issues have been found on all Netgear Nighthawk devices causing issues with blocked UDP ports. The 2 most commonly used versions of the Nighthawk routers have been tested with findings below.

    • Netgear R6400v2 models on firmware versions newer than R6400v2-V1.0.2.60_10.0.44 will experience dropped calls and connectivity issues. The newer firmware revisions block outbound UDP connections on ports 1024-65535 at random.
    • Netgear R7000p models on firmware versions newer than V1.0.0.58_1.0.50 will experience dropped calls and connectivity issues. The newer firmware revisions block outbound UDP connections on ports 1024-65535 at random."

    Second Life has UDP traffic on ports 53, 3478, 3479, 5060, 5062, and 12000-29999.

    Evil middlebox problems.

×
×
  • Create New...