Welcome
Visual Reactive Programming with Bonsai
This training course will introduce you to the basic concepts of data acquisition and behavioural control using the Bonsai visual programming language.
Course Schedule
| Monday | Tuesday | Wednesday | Thursday | Friday | |
|---|---|---|---|---|---|
| Lecture | Introduction to Bonsai | Reactive Operators | Higher Order Operators | Computer Graphics | Closed-loop VR |
| Workshop | Acquisition and Tracking | Closed-loop experiments | State Machines | Shaders | Visual Environments / Final Projects |
Day 1 - Introduction to Bonsai
- What is visual reactive programming?
- Marble diagrams and how to read them
- Learning your way around the Bonsai IDE
- How to measure and control almost anything with Bonsai
- Real-time tracking of colored objects, moving objects and contrasting objects
- Measuring behavior using voltages and an Arduino
Tutorial: acquisition and tracking
Day 2 - Real-time closed-loop experiments
- Fundamental reactive operators
- Data synchronization and measuring closed-loop latency
- Conditional effects: triggering a stimulus based on video activity
- Continuous feedback: modulate stimulus intensity with speed or distance
- Continuous and conditional feedback: closed-loop experiment building blocks
- Synchronising asynchronous data streams
Tutorial: closed-loop systems, data synchronisation
Day 3 - Operant behavioral tasks
- Sharing observable sequences
- Creating dynamic observable sequences with higher-order operators
- Modeling trial sequences: states, events, and side-effects
- Driving state transitions with external inputs
- Best practices for composing complex workflows
Tutorial: state-machines for operant tasks
Day 4 - Computer Graphics
- Introduction to modern graphics programming
- Writing your first fragment shader
- Introduction to BonVision
- Projection mapping and multi-display systems
Tutorial: Bonsai shaders
Day 5 - From shaders to complex visual scenes
- Integration with external modelling tools
- Building closed-loop virtual reality experiments
- Reproducible deployment and versioning of experiments
Tutorial: Visual environments, final projects