A minimal starter template for new SceneScape projects to get up and running in minutes.
- Clean project structure
- Ready for customization
- No dependencies included
- All images are pulled from Docker Hub—no additional build steps required
-
Clone this repository:
git clone https://github.com/raw10/scenescape-blank.git
-
Navigate to the project directory:
cd scenescape-blank -
Run the setup script to initialize the environment:
./setup.sh
This will guide you through initialization and optionally start the environment with Docker Compose.
-
To start the environment manually at any time:
docker compose up -d
-
To check running containers:
docker compose ps
To completely reset the environment (remove all containers, volumes, secrets, and optionally images), run:
sudo ./reset.shWarning: This is a destructive operation and will prompt for confirmation.
Once the environment is running, you can test the system as follows:
-
Add a Scene: Use the SceneScape web interface or API to create a new scene.
-
Add a Camera: Add a camera to the scene with the ID
camera1. -
Live View: Open the live view for the camera. You should see the sample video playing with vehicle detections overlaid.
- The DLStreamer Pipeline Server is pre-configured to use the video file
car-detection.tsforcamera1. - The pipeline configuration can be found in
src/dlstreamer-pipeline-server/config.json.
Reference Pipeline Configuration:
- The pipeline uses
multifilesrcto loop the video file. - Only .ts files will loop infinitely, so the setup script converts videos from .mp4 to .ts formats.
- Vehicle detection is performed using the specified model.
- Results are published and available in the live view.
- Edit
src/dlstreamer-pipeline-server/config.json. - Locate the
"model"property in the pipeline string for your camera (e.g.model=/home/pipeline-server/models/intersection/openvino.xml). - Replace the path with your desired model file.
- Place your model deployment files in
src/dlstreamer-pipeline-server/models/.
- Add a new entry to the
"pipelines"array insrc/dlstreamer-pipeline-server/config.json. - Specify a unique
"name"and configure the pipeline string and parameters for the new camera. - Make sure the
"cameraid"in"camera_config"matches your new camera's ID.
The camera calibration file is located at src/dlstreamer-pipeline-server/calibrations.json.
Each entry in this file is keyed by the camera ID as specified in your pipeline configuration. This allows you to provide unique calibration parameters for each camera.
{
"camera1": {
"intrinsics": { "fov": 70 },
"distortion": [0,0,0,0,0,0,0,0,0,0,0,0,0,0]
}
}- Use
"fov"for a single diagonal field of view (FOV). - The pipeline will compute
fx,fy,cx,cybased on the frame resolution and diagonal FOV.
{
"camera1": { },
"camera2": {
"intrinsics": { "hfov": 70, "vfov": 45 },
"distortion": [0,0,0,0,0,0,0,0,0,0,0,0,0,0]
}
}- Use
"hfov"and"vfov"for configuring using horizontal and vertical fields of view.
{
"camera1": { },
"camera2": { },
"camera3": {
"intrinsics": { "fx": 905, "fy": 905, "cx": 640, "cy": 360 },
"distortion": [0.012,-0.123,0,0,0,0,0,0,0,0,0,0,0,0]
}
}
- Only use direct intrinsics if you know the exact values for your camera and resolution.
-
Edit
src/dlstreamer-pipeline-server/models/confidence_thresholds.json. -
Use a JSON object with
"default"and optional per-class thresholds:{ "default": 0.5, "person": 0.8, "vehicle": 0.7 } -
The pipeline server will filter detections below the specified thresholds for each class.
Contributions are welcome. Please open issues or submit pull requests.
This project is licensed under the MIT License.