Monthly Roundup – and some Big News!

It’s been a big month for us here at BPI!  We moved out of the old shop (just in time, since that huge storm blew out a window – if we hadn’t already moved Ben’s office out, all the computers and electronics would have been soaked!), and we’re mostly settled into the new shop.  I’ve been organizing the office, while Ben got the router set up in its new home and started organizing the electronics shop.  Meanwhile, the littlest member of our team has settled right into her office – we’re pretty sure she’d be happy to just move in there and never come home.

We got the move done just in time, since cue light season is back in full swing – we’re shipping 6 Prospero units in the next six weeks – and Ben is about to do a beta installation of Horatio Outdoor.  He’s also continuing development on the Midi Show Control box, which should be done by mid-October.

We’ve also got some exciting news:  we’re exhibiting at LDI for the first time this year!  I’ve gone into master planning mode, making schedules and designing the booth, while Ben gets Horatio and Prospero ready to show off to the world.  It’s going to be a crazy couple of months, but we’re excited.  If you’re going to be at LDI, drop us a line, and stop by to chat with Ben – Booth #1782!

We’ve Moved!

We’ve been slacking off on the weekly roundup posts, but we had a good reason: we were moving the shop!

While we loved our shop at the Design Center, with its urban stained glass (aka graffiti on the windows) and awesome neighbors (hi, Plant Lady!), an opportunity arose that was just too good to pass up. Clear Story Creative, who we’ve done some great projects with in the past, had some extra space and invited us to move in!

BPI is still a separate operation, with our own dedicated space in their shop, and Ben gets an air conditioned and heated office out of the deal (no more fingerless gloves for programming in the winter!). Ben also gets people to talk to during the day (so you might see him on Facebook a little less often…), I get my own desk (instead of a tiny corner of an electronics workbench), and the littlest member of our team even gets a new office and some new friends (who are already providing her with exciting new toys…).

Posts might be sporadic for the next few weeks as we continue to settle in, but keep an eye on our Facebook and Twitter accounts for pictures as we get the office set up and decorated!

Weekly Roundup: 5/30/16

Ben had a crazy schedule last week, working on at least 3 different projects every day and taking him everywhere from 2 different construction sites to the Water Cube downtown, The Beauty Shoppe in East Liberty, and at least three different coffee shops.

He installed a DIN rail Horatio in a newly-built office building (surface-mounted inside the rack, since there was no more space for a rack-mount version), cleaned up some programming for the Water Cube’s grand opening next Thursday, had great meetings with a bunch of interesting people doing interesting things (more on that later), and attended an Internet of Things panel hosted by Fygment, a great local organization that’s bringing together entrepreneurs of all kinds in Pittsburgh.

Upon returning to the shop at the end of a long day, he also discovered that someone had logged into the Horatio demo site and played with the lights while he was away. (Hello, whoever you are, and thanks for the blue disco lighting!)

Weekly Roundup: 5/23/16

The shop is clean! Mostly. Enough that we could have a fun party, meet some great local artists, and chat with them about their current and future projects. Thanks to everyone who came out, and to the Office of Public Art for hosting! We’re hoping to make this a regular (maybe monthly?) thing, so more news on that soon!

Ben’s also been hard at work this week continuing work on Horatio development – and he even found some time to fix his 30-year-old backhoe, which made the littlest member of our team very very happy.

Weekly Roundup: 5/16/16

Not a lot of photos this week, but it’s been busy nonetheless! Ben finished up work on the Water Cube, which soft opened at the EQT Children’s Theatre Festival downtown on Thursday. In addition to installing a custom Horatio with more than 30 sensors to monitor the water and lighting systems, he also ended up designing a custom lighting controller and helping to troubleshoot some lighting problems. The end result is a pretty great installation – great art, great lighting, and still and sparkling water on tap!

We also spent some time this week getting the shop ready for a party! The Pittsburgh Office of Public Art is hosting an event for local artists as part of their Public Art 201 series, and we’re excited to meet some more Pittsburgh artists and chat with them about what we do.

And as always, Ben continues work on Horatio development – the outdoor beta unit spent some more time on the roof this week, and it held up great in those crazy windstorms. We’re hoping to get the chance to beta test it around the city this summer with the PGH Lab project – our application is in, and our fingers are crossed! We’ve had such great experiences working with the city on various projects over the last few years, we’d love to have them give Horatio a spin!

Weekly Roundup: 5/9/16

Ben spent most of this week working on a custom Horatio installation for a public art project downtown. When the installation opens tomorrow, we’ll be monitoring everything about it, from lighting to water to CO2, via 30 different sensors connected to a custom-built Horatio. We can’t say much about it right now, but check out the photos below, and stop by the parklet at Penn & 8th downtown after tomorrow to see it for yourself – it’s going to be great!

Ben also found time this week to do a little more testing on the outdoor Horatio, stop by a local Horatio installation in progress, and head down to Market Square to assist with Mix N’ Match strike. It was a busy week!

Weekly Roundup: 4/25/16

Ben’s been working on all sorts of things this week, including customizing a Horatio for a new art installation in the Cultural District, finishing up that DMX-to-IR converter, and updating the touch-sensitive basketball backboard we built with John Murray Productions for Chevron STEAM Zone’s Vertical Leap exhibit a few years ago. He’s also testing out a new outdoor version of Horatio – by hanging it out the window at the shop. Life is never boring here at BPI!

Weekly Roundup: 4/18/16

Now that we’ve told the world about Horatio, we spent the last week getting everything ready for the first few units to ship. Ben’s been busy building the Bridge Devices in the shop, while I’ve been preparing a little surprise for our first customers.

Ben also spent some time working on a custom DMX-to-IR converter for a client (to cue infrared-controlled LED candles via DMX), and the littlest member of our team has been working on writing (and coloring) her numbers. She’ll be in the shop building Horatios in no time!

Also, in case you missed it, we got some great Horatio press from Stage Directions, and a mention in this Live Design article about the Winter Palace on Fifth!

Sneak Peek: Mix N’ Match

Just a sneak peek at what Ben’s working on this week: an art installation called Mix N’ Match that opens in Market Square on Friday and runs through the end of April. Starting tomorrow he’ll be in the Square with the awesome folks from Flyspace Productions all day every day, rain or shine, ’till they get this thing up and running. If you’re in the neighborhood, stop by and say hi!

Take a (random) walk with me

One of the things we’re developing right now is a new product that will monitor architectural lighting installations (more on that soon!). We’re testing out the system in our shop, but before we could test it properly we needed to create a nice dataset to feed into the system. To do this, we decided to mock up a basic architectural lighting system and generate some random lighting effects, which our new prototype system could monitor.

Among the random things that live in our shop is a mockup of an architectural lighting system from a project we did last year, consisting of 30 feet of RGB iLight Hypnotica. The lights in that system didn’t do anything particularly useful for our purposes, but with some modifications it became the perfect testbed for our new product.

I wanted to create something like a realistic use case, so I started by writing a script that turns the lights on at sunrise and off at sunset (so our on and off times will drift as the season changes). Simply turning the lights on to a static look didn’t give us a lot of useful data to monitor, though, and it would have been difficult to detect whether the controller was still running or if it had crashed.

My solution was to create a generative lighting system, but rather than doing something complicated like a Forest Fire, I went with the simplest algorithm possible: a random walk.

Random walking is where you vary a value (or a position) based on a random input. So if we have a random walk over a range of -1 to 1 with integers, our possible inputs are -1, 0 and 1.  A random selection of those inputs might be 0, 0, 0, -1, -1, 1, -1, -1, 0, -1, so if our value started at 0, it would do this:

0 0 0 -1 -2 -1 -2 -3 -3 -4

This is, of course, not a particularly useful function all by itself, but we can scale it up.

In this case, we took the 186 DMX channels of our lighting rig and simply produced a random walk for each value, continuously. The initial approach was a bit flickery because we didn’t handle the ends very well – variables just sort of wrapped around from 0 to 255, causing channels to bounce back and forth repeatedly from full to out.  Adding some nudging on the ends smoothed things out, and we now have a rig that produces random colors continuously.

Here’s the key bit of code:


for i in range(len(self._data)):
if(self._data[i] < 25): self._data[i] = self._data[i] + random.randrange(0,20) elif(self._data[i] > 230):
self._data[i] = self._data[i] + random.randrange(-20,0)
else:
self._data[i] = self._data[i] + random.randrange(-25, 25)

In short: if the current value is less than 25, add a random number between 0 and 20. If the current value is greater than 230 (25 less than 255, the maximum), subtract a number between 0 and 20. Otherwise add a random number between -25 and 25.

This executes 40 times per second, so the lights can change color rather quickly.  Here’s a look at the finished test system:

In this case we’re doing a random walk on each of the Red Green Blue channels. This doesn’t always end up being particularly interesting, but on average it does – and it gives us some good data to monitor with our prototype.  Another approach might be to run the random walk on the Hue channel of a Hue Saturation Lightness colorspace, and then map those into RGB. This would get you saturated colors at maximum brightness, but would not wander off into dark territory like the current software does.

For our testing purposes, we also need to track sun-up vs. sun-down.  The way we handled that was through the python ephem module, which gives you access to all sorts of data for astronomical bodies and observers. In this case, we simply needed to calculate the sun’s angle to the horizon:  if it’s above 0 the sun is up; if it’s below 0 the sun is down. It would be possible to add correction factors for dawn and dusk, but simply tracking day vs. night was enough for our purposes.

We based our script heavily on Sean Sill’s ola_simple_fade.py from the excellent Open Lighting Architecture library. You can download our script here.