Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Advanced Bonsai Workshop #2: Toolboxes and visual editor

glopesdev
January 19, 2016

Advanced Bonsai Workshop #2: Toolboxes and visual editor

The second part of a workshop series on the Bonsai programming language. This session covers the visual programming language concepts, editor and various abstractions included in the built-in packages.

A video presentation of these slides is available at:
https://www.youtube.com/watch?v=orQRlms2yhA

glopesdev

January 19, 2016
Tweet

More Decks by glopesdev

Other Decks in Programming

Transcript

  1. Advanced Bonsai Workshop
    https://bitbucket.org/horizongir/bonsai
    January 18-21, 2016
    Bonsai = Rx + VPL + Packages

    View full-size slide

  2. Be Reactive
    Ask Questions

    View full-size slide

  3. Workshop Programme
    1. From databases to data streams
    2. Bonsai toolboxes and visual editor
    3. Observable combinators: An algebra for data streams
    4. Representing discrete states with data streams

    View full-size slide

  4. Bonsai toolboxes and
    visual editor
    January 19, 2016
    Advanced Bonsai Workshop

    View full-size slide

  5. Bonsai = Rx + VPL + Packages
    var stream = Camera().Select(Grayscale)
    .Sample(KeyDown())
    .Do(SaveImage);

    View full-size slide

  6. Bonsai is a visual programming language for
    manipulating reactive streams

    View full-size slide

  7. Bonsai can be extended by installing new
    NuGet packages

    View full-size slide

  8. The (growing) list of Bonsai packages
    • Dsp
    • Vision
    • Audio
    • Arduino
    • OSC (Open Sound Control)
    • Windows.Input
    • Scripting
    • Shaders
    • …

    View full-size slide

  9. Replay: hot → cold

    View full-size slide

  10. Publish: cold → hot

    View full-size slide

  11. Bonsai branches publish by default

    View full-size slide

  12. Types for image processing: IplImage
    89 147 156 157 155
    47 123 165 155 148
    45 89 146 150 156
    43 72 123 163 181
    42 73 142 185 201
    82 119 174 196 192
    138 168 194 177 152
    183 190 178 152 134

    View full-size slide

  13. Types for multi-channel data: Mat
    89 147 156 157 155
    47 123 165 155 148
    45 89 146 150 156
    43 72 123 163 181
    42 73 142 185 201
    82 119 174 196 192
    138 168 194 177 152
    183 190 178 152 134

    View full-size slide

  14. Creating property editors for online
    calibration

    View full-size slide

  15. Visualizers can be stacked for context

    View full-size slide

  16. Visualizers can be stacked for context

    View full-size slide

  17. Visualizers can be stacked for context

    View full-size slide

  18. Bonsai VPL = Expression Tree
    This means that
    things like this can
    make sense

    View full-size slide

  19. Interfacing with the external world: Arduino

    View full-size slide

  20. Externalized properties can be dynamically
    mutated online

    View full-size slide

  21. Running Bonsai in batch processing mode
    1. Externalized properties become command-line arguments
    2. Batch mode terminates when ALL streams complete

    View full-size slide

  22. Image synthesis: the GPU graphics pipeline
    Romain Vergne
    http://romain.vergne.free.fr/blog/

    View full-size slide