A method of generating user-selectable novel views of an event on a viewing device, the method comprising the steps of: (a) reconstructing by a server system for each camera of a plurality of cameras image data into at least one foreground model for the respective camera and at least one environment model for the respective camera; (b) joining by the server system the at least one foreground model for each camera to create a visual atlas of all foreground models; (c) creating by the server system foreground mapping data for foreground image data in the visual atlas to a 3D coordinate in a 3D data representation; (d) projecting by the server system environment image data of all cameras for each camera onto each respective environment model; (e) creating by the server system environment mapping data for environment image data in each respective environment model to a 3D coordinate in a 3D data representation; (f) saving by the server system for each camera the respective environment model as an environment image; (g) compressing by the server system the foreground mapping data, the environment mapping data, and a depth map; (h) inserting by the server system the visual atlas into each respective environment model as a new image frame in an image sequence by projecting background rasters on each respective environment model; (i) compressing by the server system the visual atlas; (j) compressing by the server system the respective environment images and the respective environment models; (k) transmitting by the server system each compressed data in a sequence it was compressed; (l) receiving by the viewing device all compressed data; (m) uncompressing by the viewing device all compressed data; (n) selecting by a user on the viewing device the novel view; and (o) rendering by the viewing device the respective environment images onto the respective environment models for each novel view. (a) reconstructing by a server system for each camera of a plurality of cameras image data into at least one foreground model for the respective camera and at least one environment model for the respective camera; (b) joining by the server system the at least one foreground model for each camera to create a visual atlas of all foreground models; (c) creating by the server system foreground mapping data for foreground image data in the visual atlas to a 3D coordinate in a 3D data representation; (d) projecting by the server system environment image data of all cameras for each camera onto each respective environment model; (e) creating by the server system environment mapping data for environment image data in each respective environment model to a 3D coordinate in a 3D data representation; (f) saving by the server system for each camera the respective environment model as an environment image; (g) compressing by the server system the foreground mapping data, the environment mapping data, and a depth map; (h) inserting by the server system the visual atlas into each respective environment model as a new image frame in an image sequence by projecting background rasters on each respective environment model; (i) compressing by the server system the visual atlas; (j) compressing by the server system the respective environment images and the respective environment models; (k) transmitting by the server system each compressed data in a sequence it was compressed; (l) receiving by the viewing device all compressed data; (m) uncompressing by the viewing device all compressed data; (n) selecting by a user on the viewing device the novel view; and (o) rendering by the viewing device the respective environment images onto the respective environment models for each novel view.