displace trains to visually separate direction of travel now uses cross product to apply correct handedness WRT the coordinate system
trying to stabilize behavior if 0-length data frame is returned from stream read
changes to late train id and handling to make it more robust... incomplete