Examples¶
Rhylthyme includes built-in example programs that demonstrate different features and environment types. You can open any example directly from the web app sidebar under Examples, or use the links below.
Built-in Examples¶
Breakfast Schedule¶
A kitchen program coordinating scrambled eggs, bacon, and toast in parallel.
- Environment: Kitchen
- Concepts demonstrated: Parallel tracks, variable durations, delayed starts (
programStartOffset), resource constraints - 3 tracks, resource constraints on stove burners and prep stations
Academy Awards Ceremony¶
An event program modeling the flow of an awards ceremony.
- Environment: Event
- Concepts demonstrated: Sequential ceremony segments, manual triggers, indefinite durations
Lab Experiment¶
A laboratory protocol with preparation, analysis, and cleanup phases.
- Environment: Laboratory
- Concepts demonstrated: Variable durations for analysis steps, sequential dependencies
Airport Gate Turnaround¶
An airport operations program coordinating aircraft unloading, servicing, and boarding.
- Environment: Airport
- Concepts demonstrated: Parallel service tracks, tight resource constraints, buffered triggers
Bakery Production Run¶
A bakery program managing multiple dough batches through mixing, proofing, and baking.
- Environment: Bakery
- Concepts demonstrated: Resource constraints on ovens and mixers, buffers between steps
Three Trays, One Oven¶
Three trays of cookies through one oven onto a rack that holds two. Each tray starts cooling as it comes out (instances: "each"), boxing waits for all three (instances: "all"), and maxInFlight: 2 holds the third bake until a rack slot is free.
- File:
rhylthyme-examples/programs/cookies_three_trays.json - Environment: Kitchen
- Concepts demonstrated: Per-instance chains, an explicit barrier, an in-flight limit distinct from
maxConcurrent
Twelve Samples, One Rotor¶
Twelve samples aliquoted into a centrifuge rotor that holds six, spun and unloaded per sample, then pooled into two parallel thermocycler runs.
- File:
rhylthyme-examples/programs/pcr_twelve_samples.json - Environment: Laboratory
- Concepts demonstrated:
maxInFlight: 6on the rotor chain alongsidethermocycler maxConcurrent: 2; a barrier feeding a replicated step
Four Arrivals, Two Taxiway Slots¶
Four aircraft land five minutes apart, taxi in and dock per aircraft; the apron holds two, so the third landing waits for the first aircraft to clear the gate. Baggage handling waits for every arrival.
- File:
rhylthyme-examples/programs/airport_landings_taxi_gate.json - Environment: Logistics
- Concepts demonstrated:
maxInFlightover a staggered replicate, where the stagger delay is a minimum gap the gate may push out

JSON Structure¶
Every example follows the same structure. Here's a minimal program with two sequential steps:
{
"programId": "hello-world",
"name": "Hello World",
"tracks": [
{
"trackId": "main",
"name": "Main Track",
"steps": [
{
"stepId": "greet",
"name": "Greet",
"task": "greeting",
"duration": {"type": "fixed", "seconds": 5},
"startTrigger": {"type": "programStart"}
},
{
"stepId": "farewell",
"name": "Farewell",
"task": "farewell",
"duration": {"type": "fixed", "seconds": 3},
"startTrigger": {"type": "afterStep", "stepId": "greet"}
}
]
}
]
}
And here's a multi-track program with resource constraints:
{
"programId": "pasta-dinner",
"name": "Pasta Dinner",
"tracks": [
{
"trackId": "pasta",
"name": "Pasta",
"steps": [
{
"stepId": "boil-water",
"name": "Boil Water",
"task": "cooking",
"duration": {"type": "fixed", "seconds": 300},
"startTrigger": {"type": "programStart"}
},
{
"stepId": "cook-pasta",
"name": "Cook Pasta",
"task": "cooking",
"duration": {"type": "fixed", "seconds": 600},
"startTrigger": {"type": "afterStep", "stepId": "boil-water"}
}
]
},
{
"trackId": "sauce",
"name": "Sauce",
"steps": [
{
"stepId": "prep-vegetables",
"name": "Chop Vegetables",
"task": "preparation",
"duration": {"type": "fixed", "seconds": 600},
"startTrigger": {"type": "programStart"}
},
{
"stepId": "cook-sauce",
"name": "Cook Sauce",
"task": "cooking",
"duration": {"type": "fixed", "seconds": 900},
"startTrigger": {"type": "afterStep", "stepId": "prep-vegetables"}
}
]
}
],
"resourceConstraints": [
{"task": "cooking", "maxConcurrent": 4, "description": "Stove burners"},
{"task": "preparation", "maxConcurrent": 2, "description": "Prep stations"}
]
}
Manual Triggers¶
Steps can require user interaction. A step with a manual start trigger waits for you to click Start Step before it begins:
{
"stepId": "manual-step",
"name": "Quality Check",
"task": "inspection",
"duration": {"type": "fixed", "seconds": 30},
"startTrigger": {"type": "manual"}
}
See the Manual Controls guide for details on how manual triggers, variable durations, and indefinite durations work during execution.
Buffered Triggers¶
Use afterStepWithBuffer to add a delay between steps:
{
"stepId": "rest-dough",
"name": "Rest Dough",
"task": "resting",
"duration": {"type": "fixed", "seconds": 3600},
"startTrigger": {
"type": "afterStepWithBuffer",
"stepId": "knead",
"bufferSeconds": 60
}
}
More Examples¶
- Browse the rhylthyme-examples repository for additional programs across all environment types
- Use the AI Chat in the web app to generate custom programs from natural language descriptions
- Import recipes from Spoonacular or TheMealDB using the Prompts in the sidebar