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
1
410
Blending Art, Technology, and Light by Preston Holmes
PyCon 2014
April 11, 2014
Tweet
Share
More Decks by PyCon 2014
See All by PyCon 2014
Postgres Performance for Humans by Craig Kerstiens
pycon2014
29
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
780
Deliver Your Software in an Envelope by Augie Fackler and Nathaniel Manista
pycon2014
1
610
Hitchhikers Guide to Free and Open Source Participation by Elena Williams
pycon2014
6
1.2k
Localization Revisted (aka. Translations Evolved) by Ruchi Varshney
pycon2014
0
730
Smart Dumpster by Bradley E. Angell
pycon2014
0
570
Software Engineering for Hackers: Bridging the Two Solitudes by Tavish Armstrong
pycon2014
0
780
Featured
See All Featured
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.7k
How to Ace a Technical Interview
jacobian
281
24k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
140
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
61
43k
Statistics for Hackers
jakevdp
799
230k
Unsuck your backbone
ammeep
672
58k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
280
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.5k
Practical Orchestrator
shlominoach
191
11k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.8k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
14k
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