Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Blending Art, Technology, and Light by Preston ...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
PyCon 2014
April 11, 2014
420
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Blending Art, Technology, and Light by Preston Holmes
PyCon 2014
April 11, 2014
More Decks by PyCon 2014
See All by PyCon 2014
Postgres Performance for Humans by Craig Kerstiens
pycon2014
28
3.7k
Technical Onboarding, Training, and Mentoring by Kate Heddleston and Nicole Zuckerman
pycon2014
1
2.4k
"My big gay adventure. Making, releasing and selling an indie game made in python." by Luke Miller
pycon2014
2
1.7k
Farewell and Welcome Home, Python in Two Genders by Naomi_Ceder
pycon2014
1
810
Deliver Your Software in an Envelope by Augie Fackler and Nathaniel Manista
pycon2014
1
620
Hitchhikers Guide to Free and Open Source Participation by Elena Williams
pycon2014
6
1.3k
Localization Revisted (aka. Translations Evolved) by Ruchi Varshney
pycon2014
0
740
Smart Dumpster by Bradley E. Angell
pycon2014
0
590
Software Engineering for Hackers: Bridging the Two Solitudes by Tavish Armstrong
pycon2014
0
790
Featured
See All Featured
Test your architecture with Archunit
thirion
1
2.3k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
490
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
630
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
Navigating Team Friction
lara
192
16k
Scaling GitHub
holman
464
140k
WENDY [Excerpt]
tessaabrams
11
39k
sira's awesome portfolio website redesign presentation
elsirapls
0
320
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
A Soul's Torment
seathinner
6
3.4k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
73
41k
Ruling the World: When Life Gets Gamed
codingconduct
0
300
Transcript
Blending Art, Technology, and Light Python for interactive and real
time LED installations Preston Holmes! @ptone
Why are LEDs interesting?
None
None
None
LED LED Controller Hardware Interfaces and Protocols Software and Libraries
Creative Effects
! Light Emitting Diode
LED
None
• Three LEDs • put into a 5050 surface mount
package Common RGB LED
Smart vs Dumb LEDs • A dumb LED is an
RGB LED without any Integrated Circuit • 3 positive voltage inputs, and a common ground • responds just to voltage • An entire strip shares this electrical input • All LEDs on the strip are the same color
Smarter
Moar Smarter WS2811/2812
None
5 176 50 60 0 230 20 8 100 5V
serial protocol Array of Bytes
http://fastled.io But….
SanDevices E682 Joshua1Systems ECG-PIXAD8
None
DMX
E1.31 DMX over Ethernet
And what about the software
Ethernet USB Smart LED Serial DMX512 (RS485) “Software” E1.31
Interface Library Program! 0010101 Ethernet USB Smart LED Serial DMX512
(RS485) “Software” E1.31
http://www.openlighting.org/ola/
https://github.com/ptone/lumos E1.31 in Python
None
None
Inputs Elements Outputs Keyboard, MIDI, OSC, Kinect, Event File Single,
Groups, Chases, Effects DMX-USB, E1.31, servo control ...
BirdFish https://github.com/ptone/BirdFish
Trigger Events
3 Trigger Events 1 2
Map Events
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 etc Speed of chase set by mapped events Events: Map Events Trigger Events Elements: Channels: Single Group Chase
Inputs • MIDI (Musical Instrument Digital Interface) • 16 channels,
7 bit (0-127 value) • large number of physical controllers • OSC (Open Sound Control) • More modern - UDP based • Path based with very flexible values
None
None
None
Demo
A D S R • Attack • Decay • Sustain
• Release Envelopes
Tweening
Position over time Saturation Hue + Intensity
Demo
Thank You
Questions?
Bonus Material: Adaptive Frame Rates
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20 1 Second
Set target time based on current frame rate Render elements
and effects into data Send Data to Output Time remaining till frame “due”: Wait Frame data “overdue” Reduce framerate
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 1 Second