The actual position of an object at arbitrary time t with speed v along the Y axis is D(t)={ x0, vt, z0 }
Its observed psition is B(t) = { x0, y, z0 }
The time it took light to get to the observer from B(t) is sqrt( x0², y², z0² ) / c
So y = v * ( t - sqrt( x0² + y(t)² + z0² ) / c )

We can solve this for y as follows.

For convenicne, let ß = v/c
arrange things so we can use ß
y = v * ( t - ( sqrt( x0² + y(t)² + z0² ) / c ) )
yc/v – ct = - ( sqrt( x0² + y(t)² + z0² )
(v/c)yc/v – (v/c)ct = - (v/c)( sqrt( x0² + y(t)² + z0² )
y – vt = - (v/c)( sqrt( x0² + y(t)² + z0² )
replace v with vc/c
y – (v/c)ct = - (v/c)( sqrt( x0² + y(t)² + z0² )
substitute ß
y - ßct = - ß sqrt(x0² + z0² + y²)
square both sides
y² - 2ßct y + ß²c²t² = ß² (x0² + z0² + y²)
distribute the ß² on the right
y² - 2ßct y + ß²c²t² = ß²x0² + ß²z0² + ß²y²
move all to left
y² - 2 ßct y + ß²c²t² - ß²x0² - ß²z0² – ß²y² = 0
rearrange
y²– ß²y² - 2 ßct y + ß²c²t² - ß²x0² – ß²z0² = 0
extract ß² from part of it
ß²c²t² - ß²x0² – ß²z0² = ß²( c²t² – x0² – z0²)
extract y² from part of it
y²– ß²y² = y²– y²ß²= y² ( 1 – ß² )


so we have
y² ( 1 – ß² ) - 2 ßct y + ß²( c²t² – x0² – z0²) = 0
multiply by 1/(1 – ß²)
note that
y² ( 1 – ß² ) * 1/(1 – ß²) = y²
- 2 ßcty * 1/(1 – ß²) = - 2 ß/(1 – ß²)cty
ß²( c²t² – x0² – z0²) * 1/(1 – ß²) = ß²/(1 – ß²)( c²t² – x0² – z0²)


so we have
y² - 2 ß/(1 – ß²)ct y + ß²/(1 – ß²)( c²t² – x0² – z0²) = 0
move y² to left
y² = 2 ß/(1 – ß²)ct y - ß²/(1 – ß²)( c²t² – x0² – z0²)


recall y² = ya - b = 0 solves as y = ( ±sqrt(a²-4b) + a ) / 2
for this we use:
a : 2 ß/(1 – ß²)ct
a² : 4 ß²/((1 – ß²)(1 – ß²))c²t²
b : ß²/(1 – ß²)( c²t² – x0² – z0²)


( ±sqrt( 4 ß²/((1 – ß²)(1 – ß²))c²t² - 4 ß²/(1 – ß²)( c²t² – x0² – z0²) ) + 2 ß/(1 – ß²)ct ) / 2
remove /2
( ±sqrt( ß²/((1 – ß²)(1 – ß²))c²t² - ß²/(1 – ß²)( c²t² – x0² – z0²) ) + ß/(1 – ß²)ct )
rearrange
ß/(1 – ß²)ct±sqrt( ß²/((1 – ß²)(1 – ß²))c²t² + ß²/(1 – ß²)( c²t² – x0² – z0²) )
extract ß/(1 – ß²) from the sqrt() by putting (1 – ß²)²/ ß² on each term in the sqrt
note that (1 – ß²)²/ ß² is (1 – ß²) * (1 – ß²) * 1/ ß
ß²/((1 – ß²)(1 – ß²))c²t² + ß²/(1 – ß²)( c²t² – x0² – z0²)
rewtite
ß² * 1/(1 – ß²) * 1/(1 – ß²) * c²t² + ß² * 1/(1 – ß²) * ( c²t² – x0² – z0²)
put it in
(1 – ß²) * (1 – ß²) * 1/ ß² * ß² * 1/(1 – ß²) * 1/(1 – ß²) * c²t²
+ (1 – ß²) * (1 – ß²) * 1/ ß² * ß² * 1/(1 – ß²) * ( c²t² – x0² – z0²)
cancel out
c²t² + (1 – ß²) * ( c²t² – x0² – z0²)
put the extracted ß/(1 – ß²) on the out side now
ß/(1 – ß²) * ±sqrt(c²t² - (1 – ß²)( c²t² – x0² – z0²))

so we have
ß/(1 – ß²)ct + ß/(1 – ß²) * ±sqrt(c²t² - (1 – ß²)( c²t² – x0² – z0²))
undistribte ß/(1 – ß²)
ß/(1 – ß²)( ct ±sqrt(c²t² - (1 – ß²)( c²t² – x0² – z0²)) )

rearange the contents of sqrt() some
c²t² - (1 – ß²)( c²t² – x0² – z0²)
distribute the minus sign
c²t² + (-1 + ß²)( c²t² – x0² – z0²)
distribute (-1 + ß²)
c²t² + (-1 + ß²)c²t² - (-1 + ß²)x0² – (-1 + ß²)z0²
distribute the minus sign
c²t² + (-1 + ß²)c²t² + (1 – ß²)x0² + (1 – ß²)z0²
distribute c²t²
c²t² + -c²t² + ß²c²t² + (1 – ß²)x0² + (1 – ß²)z0²
c²t² cancels out
ß²c²t²+ (1 – ß²)x0² + (1 – ß²)z0²
Which have now have inside the sqrt()

so we have
ß/(1 – ß²)( ct ±sqrt(ß²c²t²+ (1 – ß²)x0² + (1 – ß²)z0²) )

We only want the negative root, the other is a nonsensical position farther ahead of the current position.

replacing ß with v/c we get
(v/c)/(1 – (v/c)²)( ct -sqrt((v/c)²c²t²+ (1 – (v/c)²)x0² + (1 – (v/c)²)z0²) )
change (v/c)² to v²/c²
(v/c)/(1 – v²/c²)( ct -sqrt(v²/c²*c²t²+ (1 – v²/c²)x0² + (1 – v²/c²)z0²) ) )
cancel c
(v/c)/(1 – v²/c²)( ct -sqrt(v²t²+ (1 – v²/c²)x0² + (1 – v²/c²)z0²)) )
rewrite
(v/c) * 1/(1 – v²/c²) * ( ct - sqrt(v²t²+ (1 – v²/c²)(x0²+z0²)) ) )
multiply (v/c) in 2 parts of the equation
(v/c)/(1 – v²/c²) = 1/(1 – v/c)
( (v/c)ct - (v/c)sqrt(v²t²+ (1 – v²/c²)x0²) ) ) = ( vt - (v/c)sqrt(v²t²+ (1 – v²/c²)(x0²+z0²)) ) )
so we have
1/(1 – v/c) * ( vt - (v/c)sqrt(v²t²+ (1 – v²/c²)(x0²+z0²)) )

The current postion of the object D(t)is { x0, vt, z0 }
using yr for vt we have coordinates for B(T)
{x0, 1/(1-v²/c²) (yr - v/c sqrt(yr ² + (x0²+z0²)(1-v²/c²)),z0}