Your files

Host your own pointcloud files and view them in virtual reality using ImmersivePoints.


How to host your own pointcloud files

To view your pointcloud in VR, you need to host your binary file on a web server and pass its URL to the viewer. Here's how:

1 Prepare your pointcloud file

Export your pointcloud as a binary file in one of the supported formats (see file format specifications below).

2 Host your file

Upload your binary file to any web hosting service that supports CORS. Some options include:

Important: The hosting server must allow cross-origin requests (CORS) from immersivepoints.com for the viewer to load your file.

3 View in VR

Enter your hosted file URL below and we'll generate the viewer link for you:


File format specifications

All binary files must be in float32 format. ImmersivePoints supports two formats:

XYZI Format 4 values per point

Position with hue-based coloring.

Field Type Description
Xfloat32Position forwards
Yfloat32Position upwards
Zfloat32Position left
Huefloat32Color hue (0.0 – 1.0)
The hue value follows the HSL color specification. Saturation and lightness are fixed at 1.0.

XYZRGB Format 6 values per point

Position with full RGB color control.

Field Type Description
Xfloat32Position forwards
Yfloat32Position upwards
Zfloat32Position left
Redfloat32Red channel (0.0 – 1.0)
Greenfloat32Green channel (0.0 – 1.0)
Bluefloat32Blue channel (0.0 – 1.0)

Bounding Boxes Coming Soon

Support for 3D bounding boxes is planned.

Field Type Description
Center Xfloat32Center position forwards
Center Yfloat32Center position upwards
Center Zfloat32Center position left
Size Xfloat32Box width
Size Yfloat32Box height
Size Zfloat32Box depth
Rotation Xfloat32Rotation around X axis
Rotation Yfloat32Rotation around Y axis
Rotation Zfloat32Rotation around Z axis
Redfloat32Red channel (0.0 – 1.0)
Greenfloat32Green channel (0.0 – 1.0)
Bluefloat32Blue channel (0.0 – 1.0)
Opacityfloat32Transparency (0.0 – 1.0)

Advanced: URL Parameters

The viewer supports several URL parameters for different use cases:

Simple file URL Recommended

Pass a URL to your hosted binary file. The file extension determines the format.

oculus.html?name=https://example.com/mycloud.xyzi

Use .xyzi or .xyzrgb file extension to auto-detect format.

Inline Base64 Points No hosting required

Embed small pointclouds directly in the URL as base64-encoded data. Great for sharing without hosting.

oculus.html?base64=YOUR_BASE64_ENCODED_DATA

Encode your binary float32 data as base64. Works for XYZI format.

JSON Configuration Advanced

For complex scenes with multiple pointclouds, lines, bounding boxes, and 3D objects, use a base64-encoded JSON configuration.

oculus.html?jsonb64=BASE64_ENCODED_JSON

Example JSON structure:

{
  "points": [
    {
      "source": "url",
      "url": "https://example.com/cloud1.xyzi",
      "type": "XYZI",
      "pointSize": 0.04
    },
    {
      "source": "base64",
      "base64": "BASE64_DATA_HERE",
      "type": "XYZRGB"
    }
  ],
  "lines": [
    {
      "source": "url",
      "url": "https://example.com/lines.bin"
    }
  ],
  "bboxes": [
    {
      "source": "url",
      "url": "https://example.com/boxes.bbox"
    }
  ],
  "objects": [
    {
      "source": "url",
      "url": "https://example.com/model.glb",
      "position": [1.0, 2.0, 3.0],
      "rotation": [0.0, 0.0, 0.0],
      "scale": [1.0, 1.0, 1.0]
    }
  ]
}

Additional Options

Parameter Values Description
modexyzi, xyzrgbSpecify format when using name parameter
showAxestrue, falseShow XYZ axis helper in the scene
autoRotatetrue, falseAuto-rotate the camera around the scene

Lines Format

Lines are defined as pairs of 3D points. Each line segment uses 6 float32 values:

Field Type Description
X1, Y1, Z1float32 × 3Start point of the line
X2, Y2, Z2float32 × 3End point of the line

Example export scripts

Need help exporting your pointcloud data? Check out these example notebooks: