You are on page 1of 8

A Local Perception Filter for Distributed Virtual Environments

Paul M. Sharkey,

Matthew D. Ryan,

David J. Roberts

Interactive Systems Research Group: Department of Cybernetics, The University of Reading, Whiteknights, Reading RG6 6AY, UK Abstract
Dynamic multi-user interactions within distributed collaborative virtual environment (CVE) suffer from abrupt stare transitions due fo communication delays -an acrion by one user only becoming apparent to another user after the delay. This results in a divergence of the environmentfor the duration of the delay, followed by an abrupt jump to resynchronise. so that the currenf state of the virrual world is displayed. Such discontinuiries do not occur in the real world and rhus appear unnatural and disconcerting to the, users. This paper develops the concept of a 3+-D Perception Model, as an alternarive fo prediction, which locully filters the underlying model, ensuring that each user views a continuous version of the environmenr, such that no jumps occur despite delays arixiq from wmofc user interaction. Each users 3/-D filter is specific ro their own circumsrances, whence each users perception of the environment will be slighrl) different from that of other users. velocity and acceleration [13],[14]. In a distributed system, the commencement of a remotely generated event will normally he delayed by the communication system. With discrete events this has die effect of observing the action of remote users behind current time. With continuous events, remote users actions are perceived at current time hctween the time an event is received and a superseding event is generated. The period of communication delay, however, induces an erroneous condition where an objects behaviour still follows a superseded event. This has the effect of inducing sudden jumps in the normally continuous evolution of state. For example, in a game of baseball, a hall may be seen to have gone through a remote users bat and then suddenly jump into its true position and path.

1.1: Deterministic vs. non-deterministic events

Bandwidth consumption may be further reduced through replicating the generation of deterministic events. For example, a hall bouncing from a wall can he calculated at each replication without the need for communicating the bounce event. This approach has the added advantage of overcoming network induced inconsistencies for those events that are deterministic. An event is, however, only deterministic when no other event can negate it. This implies some synchronisation of the replications that ensures all potential conflicts are known before an event is generated. Ensuring that all events are deterministic is fundamentally impossible in human in the loop simulations supporting real time interaction [I I]. Non-deterministic events may arise from user input. partial replication and network delays. These events may also he replicated, provided that some form of roll hack strategy is employed to negate the effect if the event is found to he false. Returning to the basehall example, a user might he seen to hit a hall when in fact they slipped at the last moment and missed it. To explain the relationship between deterministic and non-deterministic events let us consider collision detection and collision prediction of objects [ 141. As path graphs

1: Introduction
Distrihuted virtual reality systems generally use database replication to reduce bandwidth consumption. Early systems replicated the entire environment at each participating computer. As environments have grown, newer systems [5][8][161 employ partial replication - a computer will only hold copies of objects in which the local user (or application) is potentially interested. Bandwidth consumption is reduced in most systems by only communicating changes in object state or hehaviour, hereafter called an event. Some systems use discrete events [4], for example, the movement of an object may be communicated as a continuous stream of position events. This approach is bandwidth intensive and only suitable for communication of movement between a low number of participants. Other systems support continuous events that define the evolution of an objects state over time. For example, the movement of an object may he represented by a start time and parametric description of

242 O-8186-8362-7/98 $10.00 0 1998 IEEE

define the future states of objects, collisions can be predicted by scanning through object path graphs, e.g. by pairwise comparison of the movement of two objects and finding the time when such collisions occur. Consequently, the appropriate response at the moment of collision may be calculated locally and in advance and the path graphs may be suitably modified to reflect this response at the collision time, thereby avoiding the need to communicate new state changes for each collision. Given a (distributed) deterministic model of the virtual environment, no communications are required until a nondeterministic event occws. The evolution of this model is only affected by the unpredictability of (non-deterministic) user input which can cause unexpected changes in the path graph of an object, which in turn may affect other object paths, resulting in modified path graphs for some or all objects. These changes must subsequently be broadcast to all sites, effectively generating a new deterministic model for all users to model until the next non-deterministic input. It is noted that local users will only require a time parametric description of the specific non-deterministic input - the consequences of the input may be locally calculated. 1.2: The effect of communications delays

1.3: Smooth


Distributed CVEs use many different techniques to maintain consistency and synchronisation of the world [IO]. A crucial difference in implementation depends on whether or not the CVE is synchronised to a global clock: Asynchronous model. Here, no concept of global time is implemented. Messages are not timestamped and are implemented as they are received. Thus, remote users are shown delayed by A to remove discontinuities. Objects coincident with the remote user are also delayed by A in the local users view. Therefore, objects being interacted with by a remote user are displayed at the remote users time and interactions are viewed without discontinuity. However, were the object to be passed to a different user, at a different delay, then inconsistencies arise. Synchronous model. Using a global clock, all federates are synchronised and all messages timestamped. On receipt of messages the correct current trajectories are implemented. Thus, objects are displayed in real time and, close to local user, allow for interaction in real-time. However, were the object to be passed to a remote user, at a some delay, then, as before, inconsistencies arise. Hybrid synchronous/asynchronous model. The technique hybrid in this proposes a described PaPer synchronous/asynchronous model, which combines the advantages of each method. A global time must be maintained between all participants to ensure consistency and allow interactions between users. As in the asynchronous model, remote users are displayed at a delayed time to ensure no discontinuities arise, facilitating real-time interaction with objects (albeit delayed by the appropriate delay). As in the synchronous model, objects close to the local user are implemented in real time, thus facilitating real-time local user/object interaction. The technique is realised though the 3X-D Perception Filter. 1.4: The 3%D perception filter

A non-trivial problem associated with multi-user distributed environments lies in the communications delay between the physical sites - an action by one user becomes apparent to a second user only after the communication delay, resulting in a required jump in the local model to display the current state. Specifically, if a stationary object starts to move at a velocity v, and the delay in receiving that information is At, the resulting positional error on receipt is Ap = Y x At. The positional error is proportional to both the delay and velocity of the associated object. Perhaps, the most widely known example of where delays cause inconsistency in the model, is that of battlefield simulation [8]. Here, tanks move relatively slowly and are reasonably spaced, so the effects of delays are not readily apparent. The introduction of aircraft into the environment (travelling at high velocities) illustrates the difficulty in visualising combat. Missiles which were calculated to hit aircraft would be seen to explode before reaching the aircraft. One solution to this is to synchronise clocks on all machines, and to timestamp messages sent. Here, the aircraft receives a message giving the time of firing as well as the trajectory. However, to implement this trajectory requires that the aircrafts local model instantaneously update the missile position from the launch site to its current position, an instantaneous positional jump (inconsistency) of Ap= v,,,i,,i,ex At.

The 3%D filter extends the 3-D spatial model of the viewer-centred include simulated enwronment to information on the temporal separation (which embodies the communications delays) of all other remote users from the local user. The 3%-D model places a local user at a localised co-ordinate frame (x, y. z, A) = (0, 0, 0, 0) and each remote user at (xi. yi. zj, AJ. where Ai represents the communications delay between user i and the local user. Furthermore, the 3SD model provides a smooth and continuously differentiable contour that connects all points defined by the users. The result is that: all objects and users evolve continuously; no discontinuities are perceived; the effects of delays are ameliorated; and the local model is seen to be consistent at all times. It is important to note that the perception model acts


as a local filter on the underlying local model. The model is conservative in that no prediction is carried out on perceived object trajectories. Yet the system is optimistic in that the underlying model may implement predictive strategies on actual trajectories for collision detection, and include rollback. As the communications delays are largely dependent on the physical network, different users will perceive different delays. Thus it is accepted that each user will have a different perception of the environment the difference being explicitly dependent on the delays. With small delays this difference is small.

time clocks will tend to drift slightly but can be guaranteed to be within a certain threshold, Ft. With continuous resynchronisation this threshold may be kept within 30 milliseconds of the Network Time Protocol [ I][31 and is acceptable for real-time interaction. 2.2:

Characteristics of communications delays

2: Multi-user virtual environments

It is assumed that the multi-user CVE utilises a time parameterised model which is distributed to all users, such that each model defines exactly the motions of ail deterministic objects within. Any non-deterministic event is initiated at a user site, is modelled exactly at that site and then distributed, either exactly or as an approximation, to all other users via the network. Each user (which includes the platform upon which the local model is calculated and displayed) is connected to other users via a network, associated with which are communications delays. The delay between any two users may be variable and indeed direction dependent. To manage a distributed model synchronisation of each local model is required. 2.1:

Clock synchronisation for parametric models

Synchronisation of all sites on the network which observe the same virtual world is required to maintain database consistency. Recent approaches use a real-time global clock to synchronise (and maintain synchronisation of) machines (such as NTP). More expensive methods, including GPS and radio clocks, can increase accuracy without relying on network communications. Once synchronised, all machines clocks are set to the same time, thus all local path graphs will bc synchronised. Incremental changes of position take place with respect to time, so users on fast machines will observe smoother object changes than users on slower machines as their machines can apply higher frame rates and perform more iterations in a given time interval. The advantages of using real-time synchronisation with parametric paths are: all models will be in sync irrespective of frame rates; if any one site fails the remaining sites will not be forced to stop (robustness); message passing, and hence network load, is reduced; and the past or future (with the exception of non-deterministic user input) can be observed. Each user has a local real-time system clock which, with proper synchronisation, will ideally be equal to the global real-time clock. In practice, howcvcr, the local real-

While each user accessing a multi-user system will be physically separated by the users location in the network, users are also separated spatially and temporally within the virtual environment. Spatial separation is character&d by the distance within the virtual world between the local user and each remote users, denoted DR, while temporal separation derives from the communications delay, LAK. The delay can cause inconsistencies between sites - if one site broadcasts a new parametric description for a movin,g object, then within the time taken for the communication to be received, the transmitting site and all receiving sites will have differing models of the environment. The immediate effect of this is to make objects appear to behave in an unnatural manner. In the example above, the remote sites can only apply the new parametric model after receipt of message. Until that instant all objects will continue on their previous paths for the duration of the network delay. On receipt of the information the new environment model will cause all affected objects to jump to their new parametric paths to keep in sync with the correct new model of the sending site. These abrupt state transitions will appear disconcerting and diminish considerably the illusion of realism of the virtual environment (such jumps do not occur in the real world). Where a user is simply an observer to the environment, user 0, i.e. one who does not interact with the environment, this problem can be eliminated by updating the observers environment using time or = !-A,,,,,, where Ahax is the maximum delay. Thus, observer 0 will have received all relevant changes before the local environment has caught up with the current state of the model - model 0 will be always be delayed by Ahax seconds. Clearly this creates a problem if 0 wishes to interact with the environment as any interaction between 0 and the model must occur in real time with ideally zero (but practically small) local latency. From this it is clear that two users will not be able to directly and dwumically interact with each other if there is any perceptible communication delay between them - a common example of this occurs during long distance telephone conversations where the delay uwses unnatural pauses and interruptions when one caller erroneously anticipates that the other is not responding. A second example occurs in t&operation where there is a considerable distance between the master and slave environment (e.g. space t&robotics control from an earth


station). To successfully nnplement smooth user-user interaction the delay must ideally he eliminated. Practically, the delay cannot he eliminated (even between two users using the same computer platform). However, if the nature of the interaction is of sufficiently low bandwidth then the interaction may seem reasonably smooth, eve if a bit laboured. For many virtual environments this restriction may be overly limiting - a more dynamic form of interaction may be required. For the implementation considered in this paper it is assumed that users are spatially separated, i.e. direct dynamic user-user interaction is not allowed (indirect interaction can occur. for example. passing an object). We note, however, that direct collaborarive interaction is possible, for example two users moving a table, though spatial separation is still required.

2.3: Measuring communications delays

Estimation of communication delays in wide area networks [lo] has shown that the median of the delay between any two networked sites is constant except for occasional peak periods which occur at certain times of the day when the delay rises considerably. It was shown that network load has little effect on the mediorr, though some effect on the mean delay. The report recommends calculating the delay using a robust line-fitting algorithm [IO] which, when given a set of points, returns the round trip time. The algorithm describes the best-tit line, is insensitive to outlying values, and also returns the absolute standard deviation indicating the accuracy of the calculation. Thus, when identifying communication delays in wide area networks, the delay obtained by the robust line-fitting algorithm may be considered accurate most of the time. For this paper, it can be reasonably assumed that though variable, are measurable network delays, accurately (e.g. via radio clock (re-)synchronisation). We assume that they are normally constant and within certain maximum bounds. In the case of exceptional delays, the stability of the system developed here, in terms of communicating over the WANs, becomes no worse than that of current systems.

heen concerned with varying the rate of Ilow of time across the entire virtual environment. One example has shown that users can achieve accelerated learning through training using a virtual environment in which the virtual time evolves faster than normal time [6]. Another use of virtual time is to vary the tlow of time across different regions in a virtual world, originally suggested in [IS], by providing a time alteration as a filter upon the underlying explicit model of the system. Each remote user is surrounded by an aura (similar in concept to those proposed in 121) within which time evolves normally, yet is delayed by the extent of the delay, i.e. time evolves as rRj = f - Ani, where f is real time, rRi is the perceived time within the aura of Rj, and AKi is the delay. Here, all objects within the neighbourhood of the remote user are seen to evolve with the delayed time of the remote user. Different delays can be incorporated for different users and, importantly, the local user can interact with his local environment in real-time. It is important to note that this is merely a local interface - the underlying explicit model of the system is unaffected, so there are no additional temporal inconsistencies. Any delaying of time within each of these auras affects only the local users perception of events. Clearly, having regions in which time evolves with different offsets presents problems when objects move from one region to another. Discrete steps in the offset, for example, from fRI = f - AR, to fRZ= f - An?, will result in objects undergoing discontinuous jumps in position as they move from one region to the next. This presents the possibility of the objects either disappearing or appearing in duplicate for a short length of time, given by An,-AnI. What is required is a formal mapping which blends regions with different time offsets in a continuous way. This mapping is provided by the 3/rD Perception Filter.

4: The 3GD

perception filter

3: Virtual time
Virtual time was proposed as a new paradigm for organising and synchronising distributed systems and which could he applied to distributed discrete event simulation and distributed database concurrency [7]. The virtual time paradigm defines a virtual time system as one which executes in co-ordination with an imaginary virtual clock which ticks virtual time, which may or may not he related to real time. In the past, work on virtual time has

Consider, as an illustrative example, four users, one local (L) and three remote (R,, RzS Rs), operating within a two dimensional distributed virtual environment, or operating in a plane within a 3D environment, see Fig. I. (This reduction to 2-D is solely used to aid the visualization of the model, the extension of the model to 3-D is straightforward.). Without any loss of generality, the spatial coordinates are assigned relative to the position of the local user. No restriction is placed on the mobility of any of the users, though all users must maintain a spatial separation (a minimum distance, independent of position or delay). The spatial separation constraint can be reduced in certain circumstances by limiting the bandwidth/dynamics of the interaction.


Figure 1. The 3/-Dposirions

offour users (z. = 0).

From the specifications above it is clear that the delay associated with every point in space must together form a continuously differentiable contour. Blending two regions at different delays implies that an object moving at a constant velocity between those regions will be perceived to accelerate (from a region of greater delay to a region of lesser delay) or decelerate. This acceleration must be minimized-the contour should be as flat as possible. A contour which satisfies these constraints can been found using radial basis type functions of the form 2 A = S(x,y,z) =AR, e* (1) where A is the value of the delay at any point in space, Ani is the value of the delay at the remote user location. 5 is the radial distance from remote user i, and vi is the variance of the function for that user. The delay in the neighbourhood of the remote user is reasonably constant and the effect of the delay some distance away from the user is negligible. This is confirmed by considering the rate of change of the delay, representing the perceived acceleration of objects with constant velocities, given by (2) This function approaches zero when r, + 0 and r, + = and the larger vi is, the flatter the surface will be. For multiple users the delay at each point in the plane is simply as a summation of the functions (I), as ,g (3) i=, The function Q(rL) is a prescalar function, based on the radial distance from L, and is used to force to zero the delay in the neighbourhood of the local user. It graduates smoothly from 0 at rL = 0, to a maximum value of I, at and beyond a predefined distance. To improve robustness in the face of variable delays a gain can be applied in Eqs (l)-(3) to ensure that the value of S(x,y,z) at each remote user includes a margin of error, e.g. 150% of Ani. It is clear that the delay from one usa will add to the delay at another users location if two users are close to each other (this will not be a problem if the contribution is small). The only necessary condition on the contour is that the value of the delay at each remote user site is af least that of the delay at that site. Calculation of the variance for each user, vi, can reduce the contribution to other user delays. Heuristically, the variance can be maximized while restricting the contribution of any one users delay to its nearest neighbour to, say 5%. As a final modification, a plateau may he introduced around each remote user, ensuring that remote user interactions in a wider neighbourhood of that user are perceived by the local user to be as close to real-time as S(x,y,z)=@(rL)&ARi

The communications delays for each remote user, AK,, An?, and An, respectively, may be plotted against the spatial position of each user in the virtual world, in a third dimension, placing remote users at the relative position (x,, )i, Ani). As with the spatial coordinates, the delay axis can be viewed as a relative time axis - thus the local user will always be at their current time and AL = r, - f = 0. This representation is termed the 3&D Perception Model as it gives a viewer centered representation of the virtual environment, in that the local user has explicit information about the interactions of each remote user up to time f - Ani, but cannot gain any information on any remote user interactions within the interval (f - ARir 11. It would be trivial to encompass each remote user in a circle (or sphere for 3-D) where the value of the delay is the same within each circle. However, the delay between each discrete point should also be smoothly interpolated. User requirements and system constraints will indicate the form of this interpolation, the most relevant of these are: I. The local user must be able to interact in real-time in the neighbourhood of the local user; 2. The local user must similarly be able to view remote user/object interactions in real-time, albeit delayed; 3. Objects must traverse the environment smoothly; 4. Object-object interaction must appear realistic and consistent; consequently, they must occur at the same place at same time; 5. Objects moving from one US~Tto another must appear to leave and arrive at the respective users smoothly. Given two users, L and R, separated by a distance, D, and a delay, A, then it is clear from point 5 above that an object moving from R to L at an actual speed of Y = D/A, will appear to move instantaneously. Objects approaching this critical velocity will appear to move at very high velocities. Thus, object radial velocities should be limited to a proportion of this critical velocity. This will, of course, apply to each user, leading to a global constraint on the maximum velocity based on the lowest ratio of D/Ai. This critical velocity is a fundamental constraint of distributed interactive simulations and not specific to the discussion presented in this paper.


possible, albeit at a given delay, see Fig. 2.

An approximation

to (6) is given by (7)

AI =Q(r,)xA,

where k is the current and k-l the previous samples respectively. Some general observations may be inferred from equations (4)~(5) *,.,,. Figure
cmfour positions


causal plareaus


I. _


2. The 3%-D

map and (right) delay.


of cmumnt


close to the local user, A = 0, and x(t) =x(t); close to the remote user, A = An. and %(t) = x(t-A,); static objects are unaffected, L~(t) = x(t) = a&

are not ordered

in any tense by their delays.

5.1: Objects with constant velocity

Consider an object moving at constant velocity, x(t) = a0 + a,& and .x(t) = a0 + a,(t-A), where, assuming 0 = 1, L*(t) = a,, +0, i , _ AR c~-~~~-L~Jix (8)

The resulting contour need not be calculated in its entirety, but only at specific points occupied by objects and users. It is also dynamic in that it changes as users move. The contour represents a surface, S, bounding causal volumes within space-time defining when events by one user can causally effect events at any other point in space [ 121. The contour can also be viewed as a surface on which events are perceived to occur simultaneously. 5:


I Differentiating (8) yields a closed form differential equation, which may be solved explicitly for the perceived velocitv. as

To implement the Perception Filter, consider a 3-D environment with user, one local and one remote. and a single moving point object, 0. Let the exact motion of 0, x,(t), be given by the kth order polynomial X,,(T) =a, +a,f+a,r* + +a/ (4) where the vectors ai represent the [x, y, z] coefficients. If 0 approaches the remote user. then the local user will need to delay their view of the object to ensure that any potential interaction with the object by a remote user can be viewed in real-time. From (4), the position of the object at any time can be calculated. From (3), the value of the delay can be calculated at all positions the object may be at. The local visual&rim of the object, r(f), is

~1,. for ID, -x(r)1 >> - 46 a,. for[D,-Lx(r)l+O


For this function, the delay is represented by [-,/ 2 ) A=S=+,)xA, e

Thus the perceived velocity is not constant, being explicitly dependent on position in space, though it tends to the actual value, a,, when the object is close to, or far away from the remote user. Differentiating again, a similar closed form expression may be found for the perceived acceleration, which is also position dependent. However, both perceived velocity and acceleration deform smoothly. Deviations from the true velocity only become apparent with large delays and/or large velocities (i.e. velocities which approach the critical velocity).


6: Example
A feature of the filter for systems with small delays (< -3OOms) is that is not generally detectable, except when a comparison is made when the filter has been disabled! The example chosen here has a considerable delay in order to fully illustrate the implementation. Consider a local user (L) and one remote user (R) separated by 5m and I second, i.e. [DR. An] = [5m. lsec], and consider two objects moving at constant velocities away from each user, such that they coincide at x = 4m, a distance of Im from the remote user. Object 0, departs from L at f = 0, at I rns-; object O2 departs from R at f = 0, at -0.25nK. The motion of each object are

where the radial distances are rL = pxl, and I = IDR - ILxII, and D, is the distance from the local user to remote user R. It is evident that this produces a highly non-linear equation in %. However, the scheme may be implemented in a recursive way, by noting that the contour representing the delay is smooth, reasonably flat, and continuous. Thus, where objects are moving at velocities much less than the critical velocity, the difference in the delay from one sample to the next will be small (and negligible if processed using multi-sample rates). Also, most CVEs use approximations, whence the constants a, = 0, for i 2 2 for dead-reckoned paths (or i 2 3 for inertial approximations).







5-0.251, o,

, 20 t<o


6.1: Current Systems Implementations

The two current methods the following problems: of implementation present

Asynchronous Model (no clock synchronisation): At f = 1, L receives data that O1 is travelling at -0.25ms~. This trajectory is then implemented for f 2 I as xz = 5 - 0.25(t - I). The intersection is then calculated, by L, to occur at [x. f] = [4.2, 4.21 instead of [4, 41. From the perspective of R, the intersection is calculated to occur at [x, f] = [3.X, 4.81. Neither trajectory is spatially correct and both local models are inconsistent with each other. Synchronous Model (with clock synchronisation): As above, for f = [O,l) the local user believes O2 to be stationary at x1 = 5. On receipt of the data from R at f = I, L places O1 correctly at 4.75m and travelling at -0.25ms (a discrete jump at f = I of 0.25m). The initial jump in 0, (as seen by R) would he Im! Thereafter the collision is spatially correct and both local models are consistent. 6.2: Perception

0,. but only by -15% for 02. Implementing a plateau of radial extent of Im, the collision would be seen to occur (at the edge of the plateau) in real-time but delayed by I second, at position x = 4m, as required by the explicit model. Note that the chosen delay (1 second) is large, representing an Internet delay from the UK to Australia. Nation-wide or dedicated WANs have much lower delays thereby reducing the perceived effects of the filter considerably, as illustrated in the following. Figs 3 and 4 show four trujectories. two fromposition x=0 (User L) hw from position x=5 (User R), The straight (dashed) lines are fhe actual rrajecrories, the curved (solid) liner ore the perceived trajectorirs.

filter implementation

We suggest that in some circumstances it is more important to see the initial interaction rather than the resulting trajectory. In tennis, for example, it is crucial to be able to estimate whether or not any spin has been placed on the ball. Only with both pieces of information (trajectory and interaction) can a reasonable prediction be made of how the ball will react on hitting the ground or a racquet. This spin estimate can only be gleaned from viewing the remote user interaction evolving in real-time. 6.3: Local user Ls viewpoint

(1 second delay)

The Perception Filter, defined by Eq. (3), is implemented with a variance of I. Thus, the delay at any point greater than a distance of -4m from the remote user will be A = 0, so we can assume that @ = I. The perceived motions of each object hy the local user are given by

Figure 4. Remote User Viewpoint (200ms .same trajectories ofhvo objects in Fig. 3. 6.4: Remote user Rs viewpoint



(200ms delay)

i .I: CO),


The collision perceived using the filter occurs at a delay of 0.6065 seconds, and, importantly, at x = 4m (Fig. 3), i.e. there is no spatial inconsistency in the collision! Calculation of the perceived velocities of both objects show that the velocities deviates by as much as 250% for

Assume now that the delay from L (now the remote user) to R (now the local user) is ZOOms, that the variance is chosen such that the contribution of the delay from L to R, was limited to 5% (Eq. 4). To ensure zero local latency at R the prefilter is applied as @(rL) = / rL 1, 0 5 rL 2 I; O(rL) = 1, rL 2 I. The motions perceived by R are shown in Fig. 4. It is seen that events in the neighbourhood of R evolution, match real-time whilst those to the neighbourhood of L evolve close to real-time but delayed by 200ms. Again, the collision occurs at x = 4m, as


You might also like