openapi: 3.1.0 info: title: Looking Glass Bridge API version: '1.0' description: >- HTTP REST API exposed by Looking Glass Bridge, the local runtime application that connects a host machine to Looking Glass holographic (light field) displays. Web and native applications call this local API to query connected displays, open the Bridge media player, build and control playlists of Quilt and RGBD holograms, and drive playback. The API is served on the loopback interface only (http://localhost:33334/); every operation is an HTTP POST with a JSON request body and returns a JSON envelope of the shape { "success": boolean, "response": object|null }. The official, typesafe way to consume this API is the @lookingglass/bridge (bridge.js) client library. This description was generated by the API Evangelist enrichment pipeline from Looking Glass's public documentation and the open-source bridge.js client; endpoint signatures are, per the vendor, under active development. contact: name: Looking Glass Factory url: https://lookingglassfactory.com x-generated-by: API Evangelist enrichment pipeline x-source: - https://docs.lookingglassfactory.com/software/looking-glass-bridge-sdk/web-application-integration - https://github.com/Looking-Glass/bridge.js servers: - url: http://localhost:33334/ description: Looking Glass Bridge local loopback server (default port) tags: - name: Version description: Bridge and API version information - name: Devices description: Enumerate connected Looking Glass displays - name: Orchestration description: Multi-user Bridge sessions (orchestrations) - name: Playlist description: Create, edit and delete hologram playlists - name: Playback description: Transport controls for the Bridge media player - name: Autostart description: Playlists that auto-play when Bridge starts paths: /bridge_version: post: operationId: bridge_version summary: Get the running Looking Glass Bridge version tags: [Version] requestBody: $ref: '#/components/requestBodies/Empty' responses: '200': { $ref: '#/components/responses/Envelope' } /api_version: post: operationId: api_version summary: Get the Bridge HTTP API version tags: [Version] requestBody: $ref: '#/components/requestBodies/Empty' responses: '200': { $ref: '#/components/responses/Envelope' } /available_output_devices: post: operationId: available_output_devices summary: Query the Looking Glass displays currently connected to Bridge tags: [Devices] requestBody: $ref: '#/components/requestBodies/Orchestrated' responses: '200': { $ref: '#/components/responses/Envelope' } /enter_orchestration: post: operationId: enter_orchestration summary: Start (or join) a Bridge orchestration session and receive an orchestration token tags: [Orchestration] requestBody: $ref: '#/components/requestBodies/EnterOrchestration' responses: '200': { $ref: '#/components/responses/Envelope' } /exit_orchestration: post: operationId: exit_orchestration summary: Leave a Bridge orchestration session tags: [Orchestration] requestBody: $ref: '#/components/requestBodies/Orchestrated' responses: '200': { $ref: '#/components/responses/Envelope' } /show_window: post: operationId: show_window summary: Show or hide the Bridge media player window on the display tags: [Playback] requestBody: $ref: '#/components/requestBodies/Orchestrated' responses: '200': { $ref: '#/components/responses/Envelope' } /instance_playlist: post: operationId: instance_playlist summary: Create a new (empty) playlist instance tags: [Playlist] requestBody: $ref: '#/components/requestBodies/Orchestrated' responses: '200': { $ref: '#/components/responses/Envelope' } /instance_studio_playlist: post: operationId: instance_studio_playlist summary: Create a new Looking Glass Studio playlist instance tags: [Playlist] requestBody: $ref: '#/components/requestBodies/Orchestrated' responses: '200': { $ref: '#/components/responses/Envelope' } /insert_playlist_entry: post: operationId: insert_playlist_entry summary: Add a hologram (Quilt or RGBD image/video) entry to a playlist tags: [Playlist] requestBody: $ref: '#/components/requestBodies/PlaylistEntry' responses: '200': { $ref: '#/components/responses/Envelope' } /update_playlist_entry: post: operationId: update_playlist_entry summary: Update an existing playlist entry tags: [Playlist] requestBody: $ref: '#/components/requestBodies/PlaylistEntry' responses: '200': { $ref: '#/components/responses/Envelope' } /update_current_entry: post: operationId: update_current_entry summary: Update the parameters of the currently displayed hologram tags: [Playlist] requestBody: $ref: '#/components/requestBodies/Orchestrated' responses: '200': { $ref: '#/components/responses/Envelope' } /delete_playlist: post: operationId: delete_playlist summary: Delete a playlist tags: [Playlist] requestBody: $ref: '#/components/requestBodies/PlaylistRef' responses: '200': { $ref: '#/components/responses/Envelope' } /play_playlist: post: operationId: play_playlist summary: Play a playlist on the Looking Glass display tags: [Playback] requestBody: $ref: '#/components/requestBodies/PlaylistRef' responses: '200': { $ref: '#/components/responses/Envelope' } /transport_control_play: post: operationId: transport_control_play summary: Resume playback tags: [Playback] requestBody: $ref: '#/components/requestBodies/Orchestrated' responses: '200': { $ref: '#/components/responses/Envelope' } /transport_control_pause: post: operationId: transport_control_pause summary: Pause playback tags: [Playback] requestBody: $ref: '#/components/requestBodies/Orchestrated' responses: '200': { $ref: '#/components/responses/Envelope' } /transport_control_next: post: operationId: transport_control_next summary: Skip to the next hologram in the playlist tags: [Playback] requestBody: $ref: '#/components/requestBodies/Orchestrated' responses: '200': { $ref: '#/components/responses/Envelope' } /transport_control_previous: post: operationId: transport_control_previous summary: Skip to the previous hologram in the playlist tags: [Playback] requestBody: $ref: '#/components/requestBodies/Orchestrated' responses: '200': { $ref: '#/components/responses/Envelope' } /transport_control_seek_to_index: post: operationId: transport_control_seek_to_index summary: Jump to a specific index within the playlist tags: [Playback] requestBody: $ref: '#/components/requestBodies/SeekToIndex' responses: '200': { $ref: '#/components/responses/Envelope' } /get_autostart_playlist: post: operationId: get_autostart_playlist summary: Get the playlist configured to auto-play when Bridge starts tags: [Autostart] requestBody: $ref: '#/components/requestBodies/Orchestrated' responses: '200': { $ref: '#/components/responses/Envelope' } /set_autostart_playlist: post: operationId: set_autostart_playlist summary: Set the playlist to auto-play when Bridge starts tags: [Autostart] requestBody: $ref: '#/components/requestBodies/PlaylistRef' responses: '200': { $ref: '#/components/responses/Envelope' } /set_named_autostart_playlist: post: operationId: set_named_autostart_playlist summary: Set a named playlist to auto-play when Bridge starts tags: [Autostart] requestBody: $ref: '#/components/requestBodies/PlaylistRef' responses: '200': { $ref: '#/components/responses/Envelope' } components: schemas: ResponseEnvelope: type: object description: Standard Bridge response envelope returned by every endpoint. properties: success: type: boolean description: Whether the operation succeeded. response: description: Operation payload when successful, otherwise null. type: [object, 'null'] required: [success] OrchestrationRef: type: object properties: orchestration: type: string description: Orchestration token returned by enter_orchestration. required: [orchestration] PlaylistRef: type: object properties: orchestration: type: string playlist_name: type: string description: Name of the target playlist. requestBodies: Empty: description: No body required. content: application/json: schema: type: object Orchestrated: description: Requires the orchestration token for the session. content: application/json: schema: $ref: '#/components/schemas/OrchestrationRef' EnterOrchestration: description: Optional orchestration name/keyword to create or join a session. content: application/json: schema: type: object properties: name: type: string description: Keyword identifying the orchestration to create or join. PlaylistRef: description: References a playlist by name within an orchestration. content: application/json: schema: $ref: '#/components/schemas/PlaylistRef' PlaylistEntry: description: A hologram media entry (Quilt or RGBD image/video) to place in a playlist. content: application/json: schema: allOf: - $ref: '#/components/schemas/PlaylistRef' - type: object properties: uri: type: string description: Path or URI to the hologram media file. SeekToIndex: description: Seek to a playlist index. content: application/json: schema: allOf: - $ref: '#/components/schemas/OrchestrationRef' - type: object properties: index: type: integer description: Zero-based playlist index to seek to. responses: Envelope: description: Standard Bridge response envelope. content: application/json: schema: $ref: '#/components/schemas/ResponseEnvelope'