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_individualdrone_swarm/start_swarm_random_formationdrone_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:
- Reusability -
random_movementsandwrite_wordswork independently or composed - Maintainability - Each actor has single responsibility
- 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.