Skip to main content

Hello Drones

This demo showcases actor composition in Paranet using a drone swarm in NVIDIA Isaac Sim. Simple actors combine to create complex behaviors, demonstrating how write_phrases orchestrates both write_words and random_movements actors.

Initiation

CLI Command: para init --template hello-drones

Running the demo

The only requirements are an Isaac Sim 4.2+ installation and the para CLI.

Start the Paranet environment with para docker deploy node and para docker deploy package commands in the root folder.

Start the simulation with <isaac-python.sh-path> isaac_app.py command in the root folder.

In Paracord, test these skills progressively:

Base Movement:

  • drone_swarm/start_swarm_random_individual
  • drone_swarm/start_swarm_random_formation
  • drone_swarm/stop_swarm_routines

Word Formation:

  • drone_swarm/write_word (word: "HELLO", width: 20, height: 15)

Phrase Composition:

  • phrase_writer/write_phrase (phrase: "HELLO WORLD", width: 20)
  • Observe: form word → random movement → stop → next word

Architecture

The kit demonstrates layered actor composition where complex behaviors emerge from combining simple actors:

Base Actor actors.py - Isaac Sim drone control

Movement Actor actors/random_movements.paraflow - Individual/formation random waypoints

Word Formation actors/write_words.paraflow - Clustering to position drones into text

Phrase Orchestrator actors/write_phrases.paraflow - Composes word formation + movement

The phrase writer demonstrates composition:

rule !ProcessWord($word, $num_drones, $width_meters) plan {
!FormWord($word, ...); # delegates to write_words actor
wait 30 sec;
!StartRandom(); # delegates to random_movements actor
wait 20 sec;
!StopRandom(); # delegates to random_movements actor
wait 10 sec;
}

Useful Pattern

Actor Composition

The phrase writer doesn't reimplement behaviors—it composes existing actors through skill delegation. This pattern enables:

  1. Reusability - random_movements and write_words work independently or composed
  2. Maintainability - Each actor has single responsibility
  3. Scalability - New behaviors compose existing ones without modification

This is the core pattern for building complex autonomous systems from simple building blocks.

Common Issues

Collisions: There is no collision avoidance in this demo, if seeing many collisions, increase word width to reduce them.

Performance: Reduce NUM_DRONES in isaac_app.py if needed.