Now you can create spacebrew.js apps with built in routing capabilities. I developed these prototypes, along with the appropriate updates to the spacebrew.js library, primarily for mobile apps. The reason being, the current web-based admin tool does not render well on most mobile devices.
A few months ago, I started talking to James and Josh at the LAB about the idea of embedding routing directly into the Client apps. It took me a while, but over the past couple of weeks I finally carved out some weekend and weeknight time to develop these base prototypes:
From a broader perspective these apps demonstrate how anyone can create their own custom admin apps, or integrate admin functionality into their client apps.
I just finished updating the URL Launcher Chrome Extension for Spacebrew. This app makes it possible to control a chrome browser remotely, using another Spacebrew app. It works by accepting string a message, checking that the message holds a valid URL ,then, if the URL is valid, it loads the website in the browser.
This app can also function as a Tab Manager. When run in this mode, the application makes sure that the chrome browser remains in fullscreen mode, it ensures that the active tab always remains in focus, and it closes all tabs that are in the background.
The last feature that I want to point out is the idle timer. When activated, the idle timer will refresh the website every time that the page is idle for a specified number of milliseconds. When the page is refreshed the app will also send a boolean value via the im_bored publish data feed.
Earlier today we set-up the meet-up event for our first Spacebrew workshop at MAD. The first 15 people to sign-up get in free (and we are working to get comps for all 30 people who sign-up). So sign up today and we’ll see you in a week and a half.
Earlier today we announced the Spacebrew workshop series at the Museum of Art and Design in New York. I am excited about these workshops, which I have been coordinating over the past few weeks. I look forward to leading all three sessions with a lot of support from the crew at the LAB and James and Josh, who will be flying in from Seattle for a few of these.
This is a great opportunity to learn about Spacebrew in hands-on way. Also, as much as I like the LAB where we hold our usual meet-up sessions, the Museum of Art and Design is really awesome place.
If you are interested in joining, make sure to sign-up for the event on our meet-up page. The first people to sign-up will get into the museum for free. We will post the event on meet-up in the next couple of days, we are just working to confirm how many people we can accomodate.
Earlier today I finished creating the example sketches and initial documentation for the pySpacebrew library. This library, which was contributed by Adam Mayer, makes it easy to connect pythons scripts and applications to Spacebrew. You can download the library and example scripts from github. Check-out the readme file and the examples to get up and running quickly.
Similar to the Spacebrew.js and ofxSpacebrew libraries, we’ve included four example sketches in the pySpacebrew repo. One for each of the three standard data types and the fourth one featuring a custom data type. These core examples will be actively maintained along with the library itself. Here is a brief overview of each one.
The string example is a simple stripped down chat app
The range sketch functions like a console-based slider/potentiometer
The boolean script turns the enter/return key into a toggles switch
The custom data example functions like a virtual dice
We’ve been using this library for a few months now, especially when working with Raspberry Pis. Here are links to a few other projects and explorations where we’ve used this library. The Raspberry Pi Experiments repo contains sketches that show how to drive LEDs and Servos using a Spacebrew-connect Pi. The Open CV Motion Sensor repo features an advanced client/sensor application that uses cameras to detect motion – this app can be run on a full-fledge computer or a Pi.
Please note that these apps are not maintained actively along with the pySpacebrew library. This means that they may not be using the very latest version of the pySpacebrew library. With that in mind, when creating your own apps make sure to refer to the example sketches and documentation in the library’s own repository.
Try out the pySpacebrew library and send us your feedback.
Earlier today I finished making updates to the spacebrew forwarder app for twitter and foursquare. This app enables you to forward tweets and foursquare check-ins to other Spacebrew client applications. We developed the original version of this app at the LAB at Rockwell Group a few months back.
We never talked much about these apps because we were still fixing some kinks and adding a few missing features. This app is still in alpha phase and has a pretty clunky UI, but we thought it was time to share it with the world.
We are hosting an instance of the app on our spacebrew server so that you can check it out without needing to install a local version on your own computer, since that process is somewhat involved. Here is where you can access the twitter and foursquare endpoints for this app, followed by a brief description on how they work:
To use either of these apps, you will need to authorize them to access data from twitter or foursquare using your account. This means that you can only use these apps if you have an account with twitter and/or foursquare. The authentication process is straight forward.
You start by clicking the log-in button on the appropriate forwarding app home page. This will redirect you to a page on the twitter or foursquare site.
There you will be asked to log-in to your account to grant permission to the forwarding so that it can access data using your account. This permission can be revoked at any time.
Once permission is granted you will redirected back to the forwarding app so that you can start forwarding content to Spacebrew.
Twitter Forwarding App
The twitter app forwards any tweets that meet the search query and geolocation filter that you specify. The app publishes this content in several different formats:
tweets: tweet by itself (simple string)
users_tweets: tweet with user name (stringified json)
users_tweets_photos: tweet with user name and profile photo (stringified json)
users_tweets_geo: tweet with user name and geo coords (stringified json)
kitchen_sink: all data related to the tweet (stringified json)
new_tweets: bang when a new tweet is received (boolean)
Once the forwarding functionality has been activated, you can also change the query filter via spacebrew by sending a string to the “query” subscribe channel.
Foursquare Forwarding App
The foursquare app forwards any check-ins from your contacts to spacebrew. The app publishes this content in several different formats:
people: name of people who checked in (simple string)
people_and_venues: names and venues for each check-in (stringified json)
people_and_coords: names and geo coordinates for each check-in (stringified json)
people_and_photos: name and profile photos for each check-in (stringified json)
photos: profile photos for each check-in (simple string)
check-in_bang: bang when a new check-in is received (boolean)
Ok, so here we go again. This is the second night in a row that I am writing a post about a new python library developed at the LAB for the Rapsberry Pi. As you can tell we are going a bit RPi crazy over here. This time around we created a library to drive the 16-channel Adafruit PWM Driver breakout board that features a PCA9685 chip.
We ordered a few of these boards three weeks ago and we’ve been having a great time playing around with them. They work well with both Arduinos and Pis, and they can drive LEDs and servo motors. The video above shows the RPi running the spacebrew_servos.py sketch that is included in examples folder.
A lot of credit goes to the Adafruit team, who did most of the heavy lifting. Their i2c and PWM libraries serve as the foundation for our Servo Driver library.
We have been playing with these for quite a while using Arduinos, and Adafruit’s Arduino library. With that in mind, we structured out library similar to the Arduino library from Adafruit. To help you get up and running quickly, we put together two examples scripts and a readme file featuring an initial draft of the documentation.
One of the reasons that we are so excited about using the LED strips with Raspberry Pis is that they play really nicely with Spacebrew - the LAB’s dynamic routing tookit/service. This is especially true since Adam Mayer developed an awesome python Spacebrew library at our meet-up in January.
Here is a link to the Spacebrew python library repo. Make sure to go through the readme file because you’ll need to install several dependencies to get the Spacebrew library up and running on your device. I’ll post more information about this library sometime in the coming week or two.
Another short post about our new drawing machine. Today we created our second vector image drawing. This drawing is much more complex than our first one. The good news is that the calibration is much better now. The bad news is that complex drawings really don’t look so good without the servo motor that lifts the pen as it travels over whitespace; that is why it looks like we drew a bunch of cute characters only slash them apart. Alas, we will address this issue in the next day or two, and we’ll start playing around with multi-colored drawings.
I want to give a shout out to Thomas Boucherie from 1001head, the designer who created the cute kawaii characters that we used for this drawing. Below is the original image that we used to create the drawing. Check out his website at 1001head.com for more of his stuff.
I’ll keep this post very short. Just want to share a time lapse video of the first drawing that we created with the LAB’s new drawing robot. We still have to work on the calibration of the machine, and get it working to print rasterized images. More updates to come.