Chat log from the meeting on 2013-12-03
From OpenSimulator
[11:03] Nebadon Izumi: Justin won't be here today
[11:03] Todd.Davis @virtualrealmsgrid.com:8002: Yes it is Freaky.. Though at moment having a few issues with running separate service instances..
[11:04] Nebadon Izumi: ya running seperated Robust instances gets tricky
[11:04] Freaky.Tech @freakytech.spdns.de:8002: especially when separating login stuff
[11:04] Richardus Raymaker: not sure if the work is it woorth if your grid is small
[11:06] Todd.Davis @virtualrealmsgrid.com:8002: yes.. I just setup a test grid of one region, an asset server instance, inventory server and robust just to work something out and it is being a little bit of a pain..
[11:06] Vivian Klees: for those that don't know Justin will not be participating today
[11:07] Andrew Hellershanks: Sometime next year I'm going to get back to doing some work on my de-duping asset system change
[11:07] Todd.Davis @virtualrealmsgrid.com:8002: I read your article about ubuntu.. glad I only use the server install of ubuntu..
[11:07] Nebadon Izumi: did you try the new sit fixes that Justin has done?
[11:07] Richardus Raymaker: hi andrew
[11:07] Andrew Hellershanks: Hey, Richardus
[11:08] Andrew Hellershanks waves hello to everyone
[11:08] Nebadon Izumi: seems to work very well, very nice fix
[11:08] logger sewell: hey all
[11:08] Andrew Hellershanks: nebadon, what was the sit change?
[11:08] Nebadon Izumi: for sitting on Child prims
[11:09] Robert Adams is Online
[11:09] Andrew Hellershanks: oh, right. That's been squashed at last?
[11:09] Nebadon Izumi: there was a couple issues, first one was when you sat on a child prim and went into Mouselook
[11:09] Todd.Davis @virtualrealmsgrid.com:8002: Hey nice.. I will have to test that..
[11:09] Nebadon Izumi: that is fixed
[11:09] Andrew Hellershanks: Hey, Robert
[11:09] Nebadon Izumi: the other problem was when you stood up from a child prim, you would shoot to the root prim location
[11:09] Nebadon Izumi: that has also been fixed
[11:09] Freaky.Tech @freakytech.spdns.de:8002: hi robert
[11:09] Richardus Raymaker: hi robert
[11:09] Andrew Hellershanks: oh, never noticed that bug
[11:09] logger sewell: hey Robert
[11:09] Richardus Raymaker: hi freaky
[11:10] Nebadon Izumi: and as a side bonus to these fixes, now when you sit on a child prim on a moving object, like a vehicle, your avatar no longer bounces around like crazy
[11:10] Nebadon Izumi: so lots of good fixes
[11:10] Vivian Klees: woot woot
[11:10] Nebadon Izumi: now we just need to fix sitting on unscripted objects
[11:10] Richardus Raymaker: any fixes in getting smooth flying in 0.8 ?
[11:10] Nebadon Izumi: not sure Richardus
[11:11] Robert Adams: nothing done for smooth flying that I know of
[11:11] Nebadon Izumi: Im still not sure I have ever experienced non smooth flying
[11:11] Freaky.Tech @freakytech.spdns.de:8002: so a good idea to update at least one opensim instance for testing on my stuff
[11:11] Andrew Hellershanks: only time I've seen non-smooth flying is if there is region lag
[11:11] Robert Adams: the non-smooth flying problem is a subtle effect but once it bothers you, there is no way not to see it :)
[11:13] Richardus Raymaker: i see it on many simulators
[11:13] Dahlia Trimble is Online
[11:13] Freaky.Tech @freakytech.spdns.de:8002: I guess one part of the problem is the instable UDP latency
[11:13] Richardus Raymaker: its top easy to spot.. :O
[11:13] Freaky.Tech @freakytech.spdns.de:8002: you encounter by routing
[11:13] Freaky.Tech @freakytech.spdns.de:8002: of those
[11:14] Richardus Raymaker: but there's always latency on internet
[11:15] Freaky.Tech @freakytech.spdns.de:8002: hi Pathfinder
[11:15] Freaky.Tech @freakytech.spdns.de:8002: I know you can hardly avoid it
[11:15] Richardus Raymaker: hi PF
[11:15] Robert Adams: not sure what the problem is... the simulator sets the flying speed used by the physics engine and that is sent to the viewer for its dead reconning so it should be the same speed everywhere
[11:15] Freaky.Tech @freakytech.spdns.de:8002: even QoS does not prevent that
[11:15] Freaky.Tech @freakytech.spdns.de:8002: but what happens on changes
[11:15] Robert Adams: needs a little digging into
[11:16] Freaky.Tech @freakytech.spdns.de:8002: like position updates
[11:16] Trist.Ender @hg.virtualmintaka.com:8002: hi
[11:16] Freaky.Tech @freakytech.spdns.de:8002: than the predicted speed does not match
[11:16] Freaky.Tech @freakytech.spdns.de:8002: with the reached position
[11:16] Richardus Raymaker: it still looks like you lose sometimes 1 frame
[11:17] Freaky.Tech @freakytech.spdns.de:8002: the sim sends out a position for timeframe n and a speed
[11:17] Robert Adams: doesn't need to predict the speed... the speed itself is sent...... the small jump would be the postion update showing a difference the where the viewer computed the movement and the physics engine computed the movement
[11:17] Freaky.Tech @freakytech.spdns.de:8002: and then after some time it sends out one for timeframe n+x with speed
[11:17] Dahlia Trimble: hi
[11:17] Freaky.Tech @freakytech.spdns.de:8002: and now we add somewhat unpredictable latency
[11:18] Freaky.Tech @freakytech.spdns.de:8002: and the UDP packet 2 does not match the point at the viewer
[11:18] Richardus Raymaker: and i think what freaky say thats the point you see it. but thats guess
[11:18] Robert Adams: speed up the update clock makes the problem less obvious, it seems
[11:18] Freaky.Tech @freakytech.spdns.de:8002: had observed the same issue in a lot of online based games
[11:18] Freaky.Tech @freakytech.spdns.de:8002: most tried a speed + position update
[11:18] Robert Adams: there was a change a year ago (?) to reduce the position updates when flying
[11:19] Freaky.Tech @freakytech.spdns.de:8002: and did not have a time reference for the point when the packet arrives
[11:19] Robert Adams: could have been a problem forever but now is much more visible
[11:19] Dahlia Trimble: when moving, not necessarily flying
[11:19] Dahlia Trimble: if you mean that change I did
[11:19] Freaky.Tech @freakytech.spdns.de:8002: I could make that math based with UDP latency in it
[11:20] Freaky.Tech @freakytech.spdns.de:8002: but only when wanted
[11:20] Dahlia Trimble: how do you get latency number?
[11:21] Freaky.Tech @freakytech.spdns.de:8002: I would use a random input with a min and a max value to put it into math
[11:22] Dahlia Trimble: if latency is consistent, it probably would not affect moving jitter
[11:22] Freaky.Tech @freakytech.spdns.de:8002: if latency would be always identical yes, then you would see perfect movement
[11:23] Freaky.Tech @freakytech.spdns.de:8002: but internet is not meant to provide deterministic latency
[11:23] Dahlia Trimble: sure but if it's inconsistent, then it cant really be predicted
[11:23] Freaky.Tech @freakytech.spdns.de:8002: a typical position update scenerio on many online games: <x, y, z> +
[sx, sy, sz] * dt
[11:24] Dahlia Trimble: position + velocity * time
[11:24] Freaky.Tech @freakytech.spdns.de:8002: and now you change dt to be (dt+(rand(10ms)+40ms)
[11:24] Freaky.Tech @freakytech.spdns.de:8002: and you get the problem with non-deterministic latency
[11:24] Freaky.Tech @freakytech.spdns.de:8002: and that is where it gets ISP specific too
[11:24] Simulator Version v0.5 shouts: OpenSim 0.8.0 Dev 8b3a436: 2013-11-29 02:51:35 +0000 (Unix/Mono)
[11:25] Dahlia Trimble: would 10 ms be noticeable?
[11:25] Freaky.Tech @freakytech.spdns.de:8002: the eye notices that jump
[11:25] Freaky.Tech @freakytech.spdns.de:8002: is a large scale change in view
[11:25] Dahlia Trimble: its less than a display frame time
[11:25] Freaky.Tech @freakytech.spdns.de:8002: especially when course change comes into place i.e. change of vector
[11:25] Freaky.Tech @freakytech.spdns.de:8002: speed
[11:26] Freaky.Tech @freakytech.spdns.de:8002: then you get definitely one frame seen
[11:26] Andrew Hellershanks: You can see flicker on old CRT TV's and monitors and that is about 60Hz or 16.7 mS.
[11:26] Freaky.Tech @freakytech.spdns.de:8002: but internet on long distance goes to a lot higher non-deterministic latency
[11:26] Andrew Hellershanks nods
[11:26] Dahlia Trimble: most computer displays Ive seen refresh at 60 hz
[11:26] Richardus Raymaker: hi dahlia
[11:27] Freaky.Tech @freakytech.spdns.de:8002: that is what you can hear on VoIP even more easily
[11:27] Dahlia Trimble: hi
[11:27] Freaky.Tech @freakytech.spdns.de:8002: 60Hz progressive is hardly noticeable for the eye but interlaced is noticeable at 60Hz
[11:27] Richardus Raymaker: No andrew crt is net freq / 2 if its tv
[11:27] Dahlia Trimble: computers dont interlace tho
[11:27] Andrew Hellershanks: not any more with LCD displays.
[11:28] Richardus Raymaker: yup
[11:28] Freaky.Tech @freakytech.spdns.de:8002: but CRT have a faster light reduction on a point
[11:28] Freaky.Tech @freakytech.spdns.de:8002: LCDs can do sample and hold on position
[11:28] Andrew Hellershanks: also, newer monitors can run at higher than 60Hz
[11:28] Freaky.Tech @freakytech.spdns.de:8002: so that makes it not necessary on LCDs to go higher than 60Hz
[11:28] Richardus Raymaker: plasma tv can flicker terrible to
[11:28] Freaky.Tech @freakytech.spdns.de:8002: it would run find on 24Hz by the way
[11:28] Dahlia Trimble: well I'd be curious to see some empirical measurements of perception of motion jitter
[11:29] Dahlia Trimble: but thats probably overkill
[11:29] Freaky.Tech @freakytech.spdns.de:8002: motion jitter is what you notice on lower frame rate but that is only with sports tv
[11:29] Richardus Raymaker: is there a way to get debug info easy ?
[11:29] Richardus Raymaker: i mean about the smooth moveing
[11:30] Richardus Raymaker: some opensim loging or ?
[11:30] Freaky.Tech @freakytech.spdns.de:8002: smooth moving means you need to know the age of the UDP packet
[11:30] Freaky.Tech @freakytech.spdns.de:8002: and there is also packet loss
[11:30] Dahlia Trimble: I did research timer accuracy when I did that change that filters motion updates and found a worst case accuracy of +- 5 ms
[11:30] Dahlia Trimble: depending on os and hardware
[11:30] Freaky.Tech @freakytech.spdns.de:8002: windows timers are nightmare
[11:30] Andrew Hellershanks: Richardus, full picture updates are at 30Hz. Alternate interleaved lines are drawn at 60Hz.
[11:30] Freaky.Tech @freakytech.spdns.de:8002: even the multimedia timers
[11:31] Richardus Raymaker: 25hz vs 50hz here andrew
[11:31] Andrew Hellershanks nods
[11:31] Richardus Raymaker: if you talk about crt tv
[11:31] Dahlia Trimble: however, using same timer in some opengl apps to compute animation, I see no jitter
[11:31] Andrew Hellershanks: yeah. depends on where you are.
[11:31] Freaky.Tech @freakytech.spdns.de:8002: dahlia it depends on the way that codes handles the inaccuracy of those
[11:32] Freaky.Tech @freakytech.spdns.de:8002: most actually go for audio related timing
[11:32] Robert Adams: I'll be working on varregion this weekend... hope to have TP and adjacent, same sized regions working
[11:32] Freaky.Tech @freakytech.spdns.de:8002: soundcards are in most cases the best timers
[11:32] Dahlia Trimble: Freaky, this are apps I wrote
[11:32] Richardus Raymaker: lets say it wherer fine until opensim got to 0.7.6 release. so between 0.7.5 nd 0.7.6 soemthing changed
[11:32] Andrew Hellershanks: So, Robert is working on more than just Physics these days?
[11:32] Freaky.Tech @freakytech.spdns.de:8002: it depends on the way those are handled
[11:33] Freaky.Tech @freakytech.spdns.de:8002: but put in virus scanners and all those background tasks and it screws windows timers
[11:33] Dahlia Trimble: I use the same timer to compute position changes per frame
[11:33] Robert Adams: I've been writing some implemntation notes at misterblue.com (and G+ and opensim-dev for greater coverage)
[11:33] Freaky.Tech @freakytech.spdns.de:8002: try moving a full update large window
[11:33] Dahlia Trimble: position + velocity * time
[11:33] Dahlia Trimble: smooth as silk
[11:34] Freaky.Tech @freakytech.spdns.de:8002: but it messes with timers
[11:34] Robert Adams: ya... I wanted larger region for physical objects... and DSG has an experimental extension that would allow multiple physics engines (and script engines and client managers) per region
[11:34] Dahlia Trimble: "messes with"?
[11:34] Freaky.Tech @freakytech.spdns.de:8002: the windows timers
[11:34] Dahlia Trimble: what messes with them?
[11:34] Freaky.Tech @freakytech.spdns.de:8002: the full-scale window update
[11:34] Robert Adams: with all that, once could use DSG on a very large region and add physics engines where needed
[11:34] Dahlia Trimble: I dont understand
[11:35] Dahlia Trimble: the timer is independent of the update
[11:35] Freaky.Tech @freakytech.spdns.de:8002: make a program that counts every millisecond with a windows timer
[11:35] Freaky.Tech @freakytech.spdns.de:8002: and then read out GetSystemTicks()
[11:35] Freaky.Tech @freakytech.spdns.de:8002: and start moving windows you will then see what I mean
[11:35] Freaky.Tech @freakytech.spdns.de:8002: Linux does not share that issue
[11:35] Dahlia Trimble: as I said, the timer accuracy is +- 5 ms
[11:36] Freaky.Tech @freakytech.spdns.de:8002: and windows timers do not get resend when message is still active
[11:36] Robert Adams: there is still a need for more BuleltSim work, though... I have some half implemented new features (avatar meshes, constraints, ...) as well as a few bugs to squish... so I'm no off the hook :)
[11:36] Dahlia Trimble: I dont think Im using timers thru a message queue
[11:37] Dahlia Trimble: neither is opensim for that bit of code
[11:37] Freaky.Tech @freakytech.spdns.de:8002: even windows multimedia timers can get off at moment when you go to high load
[11:37] Dahlia Trimble: so can linux
[11:37] Freaky.Tech @freakytech.spdns.de:8002: the lower layers of .NET goes to what win32 API provides
[11:37] Dahlia Trimble: neither are guaranteed real time operating systems
[11:38] Freaky.Tech @freakytech.spdns.de:8002: that is what I wanted to point out
[11:38] Andrew Hellershanks: Robert, are some of the updates/changes to BS still being back ported to 076 or are there too many changes in git master to back port to 076?
[11:38] Dahlia Trimble: regardless, I see no jitter
[11:38] Freaky.Tech @freakytech.spdns.de:8002: as I said it depends on the ISP connection as well
[11:38] Dahlia Trimble: there is no networking
[11:39] Dahlia Trimble: its an animation app
[11:39] Dahlia Trimble: not networked
[11:39] Robert Adams: I looked at keeping up the backport but there are now way too many updated needed... it would be a lot of work
[11:39] Freaky.Tech @freakytech.spdns.de:8002: a small app has seldomly problems on the timers
[11:39] Freaky.Tech @freakytech.spdns.de:8002: but larger things with networking tend to
[11:39] Dahlia Trimble gives up
[11:39] Andrew Hellershanks: Robert, ok, np. I thought that was the case.
[11:40] Freaky.Tech @freakytech.spdns.de:8002: Dahlia it is possible to have an app perform nicely but it depends on other programs running and what the system does on background
[11:40] Richardus Raymaker: let me read a bit back
[11:40] Richardus Raymaker: RL interferences
[11:41] Nebadon Izumi: Robert have you made any more progress with varregion branch?
[11:41] Richardus Raymaker: robert, a large region solve sso many problems when it works
[11:43] Robert Adams: nebadon: I'm in the middle of ripping out the 'neighbor' code which is scattered through Scene, EntityTransferModule and ScenePresence... centralizing the logic and computation of what is next to what
[11:43] Richardus Raymaker: aha. intressting.
[11:44] Robert Adams: should be done this weekend... then it will be working again (for some definition of 'working') and I can update the branch
[11:44] Nebadon Izumi: ok, can't wait to do some more testing
[11:44] Nebadon Izumi: ok great
[11:45] Richardus Raymaker: sounds like opensim get a big cleanup in code
[11:45] Freaky.Tech @freakytech.spdns.de:8002: it definitely deserves it when I looked through some parts for interest
[11:45] Robert Adams: I've taken the gloves off... I'm pulling a Justin and just refactoring and reorganizing code rather than tryping to apply bandages
[11:46] Nebadon Izumi: haha nice
[11:46] You silently accept router test from Cuteulala Artis.
[11:47] Robert Adams: all the border sensing stuff is done with arithmetic and lists of border tests... slow and unnecessary
[11:47] Freaky.Tech @freakytech.spdns.de:8002: lists sound like O(n)
[11:47] Robert Adams: I've reduced it to two functions: AmIStillInCurrentRegion and WhatRegionCoversThisGlobalLocation
[11:48] Robert Adams: (not real names... names used are for demonstration purposes only)
[11:48] logger sewell: Rorbert how would that work on different owned regions we would still need the crossings wouldn't we
[11:48] Andrew Hellershanks: Robert, There are times it is better to just redo the code instead of using a band aid approach.
[11:49] Robert Adams: yes... this is for sensing crossing... one ends up going to the grid service to find the other region even in the existing code
[11:49] logger sewell: ah ok
[11:50] Robert Adams: Melanie's changes should be mostly the mechanism to do the crossing once it has been sensed
[11:51] Dahlia Trimble: doesnt the sim already know it's neighbors?
[11:51] Freaky.Tech @freakytech.spdns.de:8002: having a faster algorithm on border sensing could probably make flying through borders more smooth
[11:51] Richardus Raymaker: Hmm, i think network latency is the biggest problem freaky
[11:52] Freaky.Tech @freakytech.spdns.de:8002: It is a major part
[11:52] Dahlia Trimble: serialization/transfer/deserialization is a big one
[11:52] Dahlia Trimble: script state and other stuff
[11:52] Freaky.Tech @freakytech.spdns.de:8002: oh yes, especially when I saw the tree based parsers
[11:53] Robert Adams: Dahlia: yes, Scene calculates (in its own way) and keeps a list of region neighbors and ScenePresence does the same (with difference calculations)
[11:53] Dahlia Trimble: but it calls to the grid services?
[11:54] Robert Adams: Scene has to keep it because regions talk to each other (child avatar movem3ent, ...) and ScenePresence does so client connects to neighbor regions to see things over there
[11:54] Robert Adams: The logic just needs to be pulled together
[11:54] Dahlia Trimble: I'd think it calls to grid services to notify of a transfer
[11:54] Dahlia Trimble: but I havent looked :)
[11:55] Dahlia Trimble: (and I dont plan to)
[11:55] Freaky.Tech @freakytech.spdns.de:8002: it probably asks for the current connection info??
[11:55] Robert Adams: the grid service is the one who knows where regions are... the neighbor region could be in a different simulator on a different contenent
[11:55] Freaky.Tech @freakytech.spdns.de:8002: or somewhen on a different celestial object ;)
[11:56] Robert Adams: so always need to goto grid service.... then Scene, for instance, builds its list (cache) of neighboring regions
[11:56] Richardus Raymaker: but that need to be done with every cossing/ new avatar ....
[11:56] Dahlia Trimble: but it would do that at startup or when a neighbor changes?
[11:57] Robert Adams: Scene does it at startup.... it's a 'cache' to make crossing and communiation quicker... like you say
[11:57] Freaky.Tech @freakytech.spdns.de:8002: actually update on region change would be sufficient
[11:57] Dahlia Trimble: it just seems that making a call to grid services when initiating a crossing would add a fair bit of delay
[11:57] Dahlia Trimble: ah ok
[11:58] Robert Adams: the local grid services also build a region cache so it doesn't have to go over the network for every grid service request
[11:58] Robert Adams: there are caches on top of caches :)
[11:58] Dahlia Trimble: :)
[11:59] Dahlia Trimble: not the easiest code to trace thru unfortunately
[12:00] Dahlia Trimble: anyone want a free santa hat?
[12:01] Andrew Hellershanks: Sure
[12:01] Richardus Raymaker: hehe i have not much in my inventory. so i can use a new hat
[12:01] Vivian Klees: sure
[12:01] Andrew Hellershanks: ty, Dahlia
[12:01] Todd.Davis @virtualrealmsgrid.com:8002: Yes please Dahilia thanks
[12:01] Pathfinder.Lester @pathlandia.dlinkddns.com:9000: me too pls ;)
[12:01] Pathfinder's Hypergrid Adventurer Hat v2.1: This Region's Global Hypergrid Coordinates: <10000,10000>
[12:01] Pathfinder's Hypergrid Adventurer Hat v2.1: Your Coordinates within this Region: <153,138,32>
[12:02] Freaky.Tech @freakytech.spdns.de:8002: why not , at least something new ;)
[12:02] logger sewell: sure dahilia thanks
[12:02] Robert Adams: I'm all set for the season
[12:02] Robert Adams: I have my one from last year :)
[12:02] Andrew Hellershanks: I should add a tassle to the top with a particle generator in it that outputs a little bit of snow
[12:02] Richardus Raymaker: do you have a hta for me to dahlia
[12:02] Vivian Klees: just missing the beard Robert
[12:02] Pathfinder's Hypergrid Adventurer Hat v2.1: This Region's Global Hypergrid Coordinates: <10000,10000>
[12:02] Pathfinder's Hypergrid Adventurer Hat v2.1: Your Coordinates within this Region: <142,151,32>
[12:02] logger sewell: and white hair :P
[12:02] Freaky.Tech @freakytech.spdns.de:8002: nice PF your hat talks ;)
[12:03] Richardus Raymaker: got it, show is confusing if you get item
[12:03] Pathfinder.Lester @pathlandia.dlinkddns.com:9000: Freaky, ya, i accidentally clicked on it just now
[12:03] Pathfinder.Lester @pathlandia.dlinkddns.com:9000: helps me keep track of where I am as I jump around the Hypergrid ;)
[12:03] Dahlia Trimble: did I miss anyone? it scrolled off
[12:03] Freaky.Tech @freakytech.spdns.de:8002: does it have a track list?
[12:03] Pathfinder.Lester @pathlandia.dlinkddns.com:9000: Dahlia, can I get a hat?
[12:03] Andrew Hellershanks: You jump around so much you lose track, Pathfinder?
[12:03] logger sewell: yeh I'll take one thanks
[12:04] Robert Adams: I need to run.... everyone take care... bye all
[12:04] Pathfinder.Lester @pathlandia.dlinkddns.com:9000: thank you dahlia?
[12:04] logger sewell: tc Robert
[12:04] Andrew Hellershanks: I should be moving along too. I have some documentation to write.
[12:04] Dahlia Trimble: bye Robert :)
[12:04] Robert Adams is Offline
[12:04] Dahlia Trimble: me too, bye all :)
[12:04] Pathfinder.Lester @pathlandia.dlinkddns.com:9000: i have to head out too. take care folks
[12:04] Andrew Hellershanks: See you next week
[12:05] Dahlia Trimble poofs.....
[12:05] Todd.Davis @virtualrealmsgrid.com:8002: Bye all.. I am off to..
[12:05] Andrew Hellershanks: I'm about finished work on my gadget so I should be filing a pile of mantis reports in a few days.
[12:05] Richardus Raymaker: bye all