How to Configure Spatial Analytics in Intel® SceneScape#

This guide provides step-by-step instructions to set up and use Regions of Interest (ROIs) and Tripwires in Intel® SceneScape. By completing this guide, you will:

  • Understand the differences between Regions of Interest and Tripwires

  • Learn how to configure ROIs and Tripwires through the UI

  • Verify that events are properly triggered when objects interact with your defined analytics


Prerequisites#

Follow the steps in Getting-Started-Guide.md to bring up an instance of SceneScape with out-of-box demo scenes.

Steps to Configure Regions of Interest#

1. Understand Analytic Types#

Regions of Interest (ROIs) are defined areas within a scene where you want to monitor object presence, count, and dwell time. Tripwires are virtual lines that trigger events when objects cross them in either direction.


2. Configure and Use a Region of Interest#

Create a Region of Interest#

  1. Log in to Intel® SceneScape.

  2. Click on a scene.

  3. Click on the Regions tab below the scene map view.

  4. Click New Region button to create a region.

  5. Draw the region on the scene by clicking points on the scene map to form a polygon. Be sure to click on the starting point to close the polygon.

  6. Optional: Add a user-defined name for the ROI in the text box.

  7. Click Save Regions and Tripwires to save the newly created region.

Modify a Region of Interest#

  1. Click on Regions at the bottom of the page.

  2. Find your region in the Scene and double click on the polygon to edit its shape. Drag the vertices to refine their positions.

  3. Click Save Regions and Tripwires to persist your changes.

Verify the Results#

  1. Use a tool like MQTT Explorer to monitor the topic right under the region name text box. For example: /scenescape/event/region/${scene_uuid}/${region_uuid}/count

  2. When the center of the object enters or exits the Region of Interest, observe that a message is received on the region event topic. Here is an example:

{
    "timestamp": "2025-07-11T06:27:53.880Z",
    "scene_id": "302cf49a-97ec-402d-a324-c5077b280b7b",
    "scene_name": "Queuing",
    "region_id": "79c9e88c-6b26-482a-9a58-2f0c1b79bb05",
    "region_name": "roi_79c9e88c-6b26-482a-9a58-2f0c1b79bb05",
    "counts": {
        "person": 1
    },
    "objects": [
        {
            "category": "person",
            "confidence": 0.9964306950569153,
            "center_of_mass": {
                "x": 873.1902567545573,
                "y": 98.25730884776397,
                "width": 53.51023356119788,
                "height": 91.01821394527661
            },
            "id": "67c4eee3-7e5e-4bd7-ac5c-559cb41f2338",
            "type": "person",
            "translation": [
                3.0463823772090572,
                3.6136200341276368,
                -2.416780078615621e-17
            ],
            "size": [
                0.5,
                0.5,
                1.85
            ],
            "velocity": [
                -0.7110168771449774,
                0.18551042958887443,
                0.0
            ],
            "rotation": [
                0,
                0,
                0,
                1
            ],
            "visibility": [ //Which cameras is this object visible from
                "atag-qcam1",
                "atag-qcam2"
            ],
            "regions": { //List of all the regions that the object is in
                "79c9e88c-6b26-482a-9a58-2f0c1b79bb05": {
                    "entered": "2025-07-11T06:27:53.880Z"
                }
            },
            "similarity": null,
            "first_seen": "2025-07-11T06:27:49.379Z" // when was the object first seen in the Scene
        }
    ],
    "entered": [ //List of all objects that entered the region
        {
            "category": "person",
            "confidence": 0.9964306950569153,
            "center_of_mass": {
                "x": 873.1902567545573,
                "y": 98.25730884776397,
                "width": 53.51023356119788,
                "height": 91.01821394527661
            },
            "id": "67c4eee3-7e5e-4bd7-ac5c-559cb41f2338",
            "type": "person",
            "translation": [
                3.0463823772090572,
                3.6136200341276368,
                -2.416780078615621e-17
            ],
            "size": [
                0.5,
                0.5,
                1.85
            ],
            "velocity": [
                -0.7110168771449774,
                0.18551042958887443,
                0.0
            ],
            "rotation": [
                0,
                0,
                0,
                1
            ],
            "visibility": [
                "atag-qcam1",
                "atag-qcam2"
            ],
            "regions": {
                "79c9e88c-6b26-482a-9a58-2f0c1b79bb05": {
                    "entered": "2025-07-11T06:27:53.880Z"
                }
            },
            "similarity": null,
            "first_seen": "2025-07-11T06:27:49.379Z"
        }
    ],
    "exited": [ //List of all objects that just exited this region
        {
            "object": {
                "category": "person",
                "confidence": 0.9963177442550659,
                "center_of_mass": {
                    "x": 486.91266377766925,
                    "y": 167.66232883228977,
                    "width": 38.757527669270814,
                    "height": 103.58497395234949
                },
                "id": "adf2932f-979e-4bd7-91b2-7909f355fbcb",
                "type": "person",
                "translation": [
                    1.2290083442950077,
                    5.053712379915115,
                    -2.7154344421259052e-19
                ],
                "size": [
                    0.5,
                    0.5,
                    1.85
                ],
                "velocity": [
                    -0.1824836416851012,
                    0.0915883684787472,
                    0.0
                ],
                "rotation": [
                    0,
                    0,
                    0,
                    1
                ],
                "visibility": [
                    "atag-qcam1",
                    "atag-qcam2"
                ],
                "regions": {},
                "similarity": null,
                "first_seen": "2025-07-11T06:29:02.378Z"
            },
            "dwell": 2.799999952316284 //What is the amount of time spent by the object in the ROI (in seconds)
        }
    ],
    "metadata": {
        "points": [
            [
                0.6242038216560509,
                4.617834394904459
            ],
            [
                1.7452229299363058,
                3.050955414012739
            ],
            [
                3.859872611464968,
                3.9426751592356686
            ],
            [
                2.2229299363057327,
                5.777070063694268
            ]
        ],
        "title": "roi_79c9e88c-6b26-482a-9a58-2f0c1b79bb05",
        "uuid": "79c9e88c-6b26-482a-9a58-2f0c1b79bb05",
        "area": "poly",
        "fromSensor": false
    }
}

Configure and Verify Region of Interest Figure 1: Region of Interest creation flow


Enable Volumetric Intersection for Region of Interest#

By default, Regions of Interest trigger events when the center point of each object enters or leaves the bounds of the polygon. However, for detecting an event like a collision, computing a volumetric intersection is necessary.

  1. Follow the instructions in How-to-define-object-properties.md to create an entry for the object category of interest.

  2. Click on the Regions tab tab below the scene map view.

  3. Find the specific region in the list and click on “volumetric” checkbox to enable intersection detection.

  4. Optional: you can add a uniform buffer around the region and vary the height of the region.

  5. Click Save Regions and Tripwires to persist your changes.

Verify the Results#

  1. Use a tool like MQTT Explorer to monitor the topic right under the region name text box. For example: /scenescape/event/region/${scene_uuid}/${region_uuid}/count

  2. Navigate to the 3D UI view of the Scene.

  3. When an object first intersects or last intersects with the region of interest, observe a message is received on the event topic for that region. Here is an example:

{
    "timestamp": "2025-07-11T06:27:53.880Z",
    "scene_id": "302cf49a-97ec-402d-a324-c5077b280b7b",
    "scene_name": "Queuing",
    "region_id": "79c9e88c-6b26-482a-9a58-2f0c1b79bb05",
    "region_name": "roi_79c9e88c-6b26-482a-9a58-2f0c1b79bb05",
    "counts": {
        "person": 1
    },
    "objects": [
        {
            "category": "person",
            "confidence": 0.9964306950569153,
            "center_of_mass": {
                "x": 873.1902567545573,
                "y": 98.25730884776397,
                "width": 53.51023356119788,
                "height": 91.01821394527661
            },
            "id": "67c4eee3-7e5e-4bd7-ac5c-559cb41f2338",
            "type": "person",
            "translation": [
                3.0463823772090572,
                3.6136200341276368,
                -2.416780078615621e-17
            ],
            "size": [
                0.5,
                0.5,
                1.85
            ],
            "velocity": [
                -0.7110168771449774,
                0.18551042958887443,
                0.0
            ],
            "rotation": [
                0,
                0,
                0,
                1
            ],
            "visibility": [ //Which cameras is this object visible from
                "atag-qcam1",
                "atag-qcam2"
            ],
            "regions": { //List of all the regions that the object is in
                "79c9e88c-6b26-482a-9a58-2f0c1b79bb05": {
                    "entered": "2025-07-11T06:27:53.880Z"
                }
            },
            "similarity": null,
            "first_seen": "2025-07-11T06:27:49.379Z" // when was the object first seen in the Scene
        }
    ],
    "entered": [ //List of all objects that entered the region
        {
            "category": "person",
            "confidence": 0.9964306950569153,
            "center_of_mass": {
                "x": 873.1902567545573,
                "y": 98.25730884776397,
                "width": 53.51023356119788,
                "height": 91.01821394527661
            },
            "id": "67c4eee3-7e5e-4bd7-ac5c-559cb41f2338",
            "type": "person",
            "translation": [
                3.0463823772090572,
                3.6136200341276368,
                -2.416780078615621e-17
            ],
            "size": [
                0.5,
                0.5,
                1.85
            ],
            "velocity": [
                -0.7110168771449774,
                0.18551042958887443,
                0.0
            ],
            "rotation": [
                0,
                0,
                0,
                1
            ],
            "visibility": [
                "atag-qcam1",
                "atag-qcam2"
            ],
            "regions": {
                "79c9e88c-6b26-482a-9a58-2f0c1b79bb05": {
                    "entered": "2025-07-11T06:27:53.880Z"
                }
            },
            "similarity": null,
            "first_seen": "2025-07-11T06:27:49.379Z"
        }
    ],
    "exited": [ //List of all objects that just exited this region
        {
            "object": {
                "category": "person",
                "confidence": 0.9963177442550659,
                "center_of_mass": {
                    "x": 486.91266377766925,
                    "y": 167.66232883228977,
                    "width": 38.757527669270814,
                    "height": 103.58497395234949
                },
                "id": "adf2932f-979e-4bd7-91b2-7909f355fbcb",
                "type": "person",
                "translation": [
                    1.2290083442950077,
                    5.053712379915115,
                    -2.7154344421259052e-19
                ],
                "size": [
                    0.5,
                    0.5,
                    1.85
                ],
                "velocity": [
                    -0.1824836416851012,
                    0.0915883684787472,
                    0.0
                ],
                "rotation": [
                    0,
                    0,
                    0,
                    1
                ],
                "visibility": [
                    "atag-qcam1",
                    "atag-qcam2"
                ],
                "regions": {},
                "similarity": null,
                "first_seen": "2025-07-11T06:29:02.378Z"
            },
            "dwell": 2.799999952316284 //What is the amount of time spent by the object in the ROI (in seconds)
        }
    ],
    "metadata": {
        "points": [
            [
                0.6242038216560509,
                4.617834394904459
            ],
            [
                1.7452229299363058,
                3.050955414012739
            ],
            [
                3.859872611464968,
                3.9426751592356686
            ],
            [
                2.2229299363057327,
                5.777070063694268
            ]
        ],
        "title": "roi_79c9e88c-6b26-482a-9a58-2f0c1b79bb05",
        "uuid": "79c9e88c-6b26-482a-9a58-2f0c1b79bb05",
        "area": "poly",
        "fromSensor": false
    }
}

3. Configure and Use a Tripwire#

Create a Tripwire#

  1. Log in to Intel® SceneScape.

  2. Click on a scene.

  3. Click on the Tripwires tab below the scene map view.

  4. Click New Tripwire to create a tripwire.

  5. Click on the Scene and a green line with two moveable endpoints will appear.

  6. Click and drag each endpoint to get the right orientation and position for the tripwire (the flag line indicates the direction of positive flow)..

  7. Optional: Add a user-defined name for the tripwire in the textbox

  8. Click Save Regions and Tripwires to create the tripwire.

Modify a Tripwire#

  1. Click on the Tripwires tab below the scene map view.

  2. Double click on the tripwire to edit on the scene.

  3. Click and drag to change position and orientation.

  4. Click Save Regions and Tripwires to persist your changes.

Verify the Results#

  1. Use a tool like MQTT Explorer to monitor the topic right under the tripwire name text box. For example: /scenescape/event/tripwire/${scene_uuid}/${tripwire_uuid}/objects

  2. When an object walks through a tripwire, observe a message is received on that topic and it contains the following data:

{
    "timestamp": "2025-07-11T06:46:21.205Z",
    "scene_id": "97781c36-b53a-4749-87e6-8815da99bac7",
    "scene_name": "Intersection-Demo",
    "tripwire_id": "92652a52-a6d5-4920-b292-0e868208a0c8",
    "tripwire_name": "northwest-tripwire",
    "counts": {
        "vehicle": 1
    },
    "objects": [
        {
            "category": "vehicle",
            "confidence": 0.9130859375,
            "center_of_mass": {
                "x": 1150,
                "y": 291,
                "width": 65.0,
                "height": 37.0
            },
            "id": "5559c880-2b13-4d43-b856-8be8d8eac43a",
            "type": "vehicle",
            "translation": [
                87.89656932138013,
                73.997183861969,
                -1.4970315844207517e-16
            ],
            "size": [
                2.5,
                1.5,
                1.5
            ],
            "velocity": [
                -5.0083541472629864,
                -5.053219441313509,
                0.0
            ],
            "rotation": [
                0.0,
                -0.0,
                -0.9230240359425683,
                0.3847422891654783
            ],
            "visibility": [
                "camera2"
            ],
            "regions": {
                "e9f0981d-8535-4782-8e85-a04cb2605db5": {
                    "entered": "2025-07-11T06:46:19.004Z"
                }
            },
            "similarity": null,
            "first_seen": "2025-07-11T06:46:18.783Z",
            "camera_bounds": {},
            "direction": 1 //in which direction was the tripwire triggered
        }
    ],
    "entered": [],
    "exited": [],
    "metadata": {
        "title": "northwest-tripwire",
        "points": [
            [
                86.55407287208759,
                105.45893940982072
            ],
            [
                87.94171331893469,
                73.54320913233751
            ]
        ],
        "uuid": "92652a52-a6d5-4920-b292-0e868208a0c8"
    }
}

Configure and Verify Tripwire Figure 2: Tripwire creation flow


Supporting Resources#