Skip to main content

A local DJI Tello simulator with a djitellopy-compatible Python API and 3D Pygame renderer.

Project description

DJI Tello Simulator

djitellopy-sim is a local simulator for DJI Tello programs. It exposes a djitellopy-style Tello and TelloSwarm API while rendering drones in a Pygame 3D scene instead of sending UDP commands to physical hardware.

Features

  • 3D projected drone renderer with altitude, yaw, tilt, rotors, shadows, trails, and extension LED color.
  • Single-drone and swarm simulation.
  • Broad compatibility with djitellopy 2.5.0 method names.
  • Simulated state packets, query commands, RC control, video frame reads, mission pad toggles, video settings, and Tello Talent extension commands.
  • PyPI-ready packaging with automatic dependency installation.

Installation

From a local checkout:

python -m pip install .

For development:

python -m pip install -e .

Usage

from djitellopySim import Tello

tello = Tello()
tello.connect()
tello.takeoff()
tello.move_forward(100)
tello.rotate_clockwise(90)
tello.send_expansion_command("led 0 255 255")
tello.flip_back()
tello.land()

Swarm code follows the same shape as djitellopy:

from djitellopySim import TelloSwarm

swarm = TelloSwarm.fromFile("ip.txt")
swarm.connect()
swarm.takeoff()
swarm.parallel(lambda i, tello: tello.move_up(50 + i * 10))
swarm.land()

Publishing

Update the package metadata in pyproject.toml, then build locally:

python -m pip install build
python -m build

This repository includes .github/workflows/publish.yml, which publishes to PyPI automatically when a GitHub Release is published.

PyPI Trusted Publishing Setup

Use PyPI Trusted Publishing so GitHub Actions can publish without a stored PyPI token.

  1. Create or log in to your PyPI account at https://pypi.org.
  2. If djitellopy-sim already exists on PyPI and you own it, open the project, go to Manage project -> Publishing, then add a GitHub Actions trusted publisher.
  3. If this will be the first upload for djitellopy-sim, open your account Publishing page and add a pending GitHub Actions publisher for the new project name.
  4. Enter these publisher values:
PyPI project name: djitellopy-sim
Owner: <your GitHub username or organization>
Repository name: <this GitHub repository name>
Workflow name: publish.yml
Environment name: pypi
  1. In this GitHub repository, create an environment named pypi under Settings -> Environments. Optional but recommended: require manual approval for deployments to that environment.
  2. Make sure pyproject.toml has the version you want to publish, commit the changes, push them to GitHub, then create and publish a GitHub Release.

API Parity

The simulator targets djitellopy 2.5.0. See PARITY.md for the implemented surface and the known differences from real hardware behavior.

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

djitellopy_sim-0.2.0.tar.gz (14.8 kB view details)

Uploaded Source

Built Distribution

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

djitellopy_sim-0.2.0-py3-none-any.whl (12.1 kB view details)

Uploaded Python 3

File details

Details for the file djitellopy_sim-0.2.0.tar.gz.

File metadata

  • Download URL: djitellopy_sim-0.2.0.tar.gz
  • Upload date:
  • Size: 14.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for djitellopy_sim-0.2.0.tar.gz
Algorithm Hash digest
SHA256 0e7e72b334791edebe6ff7b0203b92cc4522519b82e19eb3043a41279f081734
MD5 30f9147bdaad93a3690355750c3ef8d5
BLAKE2b-256 bde5afcc58f305f6b31882594887c47030557f2cf59aed52379941eecec58434

See more details on using hashes here.

Provenance

The following attestation bundles were made for djitellopy_sim-0.2.0.tar.gz:

Publisher: publish.yml on MrDaviesKellett/djitellopySim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file djitellopy_sim-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: djitellopy_sim-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 12.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for djitellopy_sim-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 74df52648f7ae9f5836216eb51b86ed28222d4efd9f7fb307087c2c7833bd0de
MD5 6fbf2d4c614a34f65773da99fddb09bc
BLAKE2b-256 f42353610c77afe4f95812ed2fee7a4ed6fd902ed46a4f5cf9d624b5c0b7b319

See more details on using hashes here.

Provenance

The following attestation bundles were made for djitellopy_sim-0.2.0-py3-none-any.whl:

Publisher: publish.yml on MrDaviesKellett/djitellopySim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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