Skip to main content

No project description provided

Project description

SceneBuilder

Overview

SceneBuilder is a Python package that provides a Matplotlib-based GUI for designing 2D test environments in a 10x10m grid for use in multiagent path planning algorithms. Users can draw polygons to represent obstacles and arrows to indicate the starting and ending points of each agent's path.

Installation

To install SceneBuilder, run the following command:

pip install scenebuilder

This command installs SceneBuilder along with all required dependencies, ensuring that everything needed to run the GUI is properly set up.

Getting Started

Prerequisites

SceneBuilder's prerequisites are defined in the pyproject.toml file and include Matplotlib and numpy.

Quick Start Guide

To start using SceneBuilder, you need to create an instance of the SceneBuilder class and invoke the draw_scene() method. Below is a simple example to get you started:

from scenebuilder import SceneBuilder

# Create an instance of the SceneBuilder
scene = SceneBuilder()

# Open the GUI to draw a scene
scene.draw_scene()

Load in an existing compatible json file for modification:

scene.load_scene("path/to/your_file.json")
scene.draw_scene()

Specify the path to save your output json to:

scene.set_output_path("path/to/output.json")
scene.draw_scene()

Using Command-Line Options

You can also use SceneBuilder directly from the command line with the following options:

  • -o, --output: Specify the path where the scene should be saved as a JSON file.
  • -l, --load: Specify a JSON file path to load an existing scene.

Example usage:

scenebuilder --load path/to/scene.json --output path/to/output.json

Features

  • Draw Obstacles: Click within the GUI to place vertices of polygons that represent obstacles. Press Tab to complete an obstacle.
  • Add new obstacle vertices: To add new vertices, click somewhere on the polygon's perimeter and drag to move the vertex to its desired location.
  • Set Drone Paths: Click once to place the starting point, and again to place the goal of an agent/drone. An arrow will automatically be drawn from start to goal.
  • Move or adjust existing obstacles/drones: Obstacles and drones can be moved by clicking and dragging. Drone start and goal points, as well as existing obstacle vertices can be moved in the same way.
  • Switch between Obstacle and Drone Modes: Press b to switch to building/obstacle mode. Press d to switch to drone/agent mode. Alternatively click the Switch button on the bottom left of the gui.
  • Remove unwanted points: To remove unwanted points (either obstacle vertices or a drone start point), press escape.
  • Undo drone/obstacle placement: To remove the last obstacle or drone, press ctrl+z.
  • Reset Scene: To reset the scene to a blank canvas, click the Reset button in the gui.

Saving Scenes

Once you have created a scene, you can save it to a JSON file by clicking the 'Create JSON' button in the GUI. This file can then be used as input for path planning algorithms that require predefined scenes with obstacles and paths.

Unless otherwise specified, the file is saved as "scenebuilder.json" in the current working directory.

Contributing

Contributions to SceneBuilder are welcome! If you have suggestions for improvements or new features, feel free to create an issue or pull request on our GitHub repository.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scenebuilder-0.1.2.tar.gz (18.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

scenebuilder-0.1.2-py3-none-any.whl (21.1 kB view details)

Uploaded Python 3

File details

Details for the file scenebuilder-0.1.2.tar.gz.

File metadata

  • Download URL: scenebuilder-0.1.2.tar.gz
  • Upload date:
  • Size: 18.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.11.7 Darwin/23.0.0

File hashes

Hashes for scenebuilder-0.1.2.tar.gz
Algorithm Hash digest
SHA256 f3584b04d6697373dfc28b1aaa5cb33c2c6cd8881f195e24704b2090201939e2
MD5 a09660089ade79f7ce5a381cb2cc41a6
BLAKE2b-256 49a5cedc155672e929b458984d5780a749a0d8fb08ae5280b026f44ec9453d48

See more details on using hashes here.

File details

Details for the file scenebuilder-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: scenebuilder-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 21.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.11.7 Darwin/23.0.0

File hashes

Hashes for scenebuilder-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d7ec9b92e529b5c3fadc3a1a4734857f2d8ca44f9fa160c0b2be51b18030c02a
MD5 7eb10224d56f1e08b08bd5d76f2247e0
BLAKE2b-256 05765815abe99c3bc87272008c5c0b31a0c62b231abe5fe1130ad59dd9f674de

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page