Web of Things Final & Post-Post-Mortem

Last stretch!

Went to the ECE Lab today to fix up the broken LED strips. Once they were fixed, I added the strips to the structure and wired it up to the FLORA board. Since the structure was beginning to give and bend due to the weight of the LEDs, I added two rings of galvanized steel for additional support. Bent them a bit to make it look more natural and “loose”. This works out since the structure looks more web-like.

The web fully lit up!

Once this was done, I attached the Raspberry Pi to the structure and hooked it up to the FLORA.

Green and ready to go!

The structure felt unexciting with LEDs occasionally turning on and off, so I decided to decorate the web with some fiber optic threads. I clipped several 6in-1ft strands, bent them at random points along each one, and attached them to the NeoPixel LEDs. Not only did it light up in the middle of each strand, but the randomness made the web look more chaotic.

The end result. The LEDs ended up radiating from outside to inside, rather than inside to outside. I think I like it this way anyways. It’s kind of like looking at towns from a plane vs cities from a plane. Towns have one or two bright lights with a few brightly lit roads. They’re spread out and buildings can appear distinct from each other. Cities have more lights and more networks of lit roads. They’re also more compact and buildings are harder to differentiate.

With the code that the FLORA board is running, the structure also spirals inwards which looks super neat.

It also looks more like a neural structure than it does a spider web but I think the message of “everything is connected to each other” still stands in this visual context.

Video of the structure in action (in various phases). Apologies for the lack of quality.

Web of Things structure in the light.


I think my original plan/idea was out of scope given the time I had to actually work on this project. (I didn’t get to implement the spider… )^: ) GDC was a huge deterrent in my ability to complete this on time. If I were to do this again, I would have also made my shopping list as soon as I could because some took until the middle of the term to arrive. I would have also bought prebuilt NeoPixel strips instead of individual ones. Assembling the strips and debugging ended up taking up the most time that could have been better used elsewhere– such as better lighting effects, and detecting wireless devices besides access points. Despite all of the bumps in the road, I’m pretty happy with what I have currently. The fiber optic threads really hits it home in terms of aesthetics. I’m definitely happy to have this live in a public space such as my living room.

Web of Things Semi-Final

Post-mortem link from last week here.

Since returning from a week-long conference trip, I have made additional progress to improve upon the half-working Web of Things light structure.

Things that were working last week:

  • 1/2 of the LED strips
  • Searching for access points within the area

Things that weren’t working last week:

  • Searching for wireless devices (phones, laptops, etc.) within the area
  • The other 1/2 of the LED strips. A connection broke in one of the LEDs.
  • Getting the Arduino & Raspberry Pi connected
  • Polish and structure stability in general

First, I determined whether or not detection of mobile devices was even possible with the wireless dongle that I had.  I installed the following programs that are specifically meant to grab information the wifi dongle sees:

After following several tutorials such as this one, these programs have returned just wireless access points on the Pi. Despite being advertised as a wireless dongle that has such capabilities, it’s possible that the hardware had limitations with what it could see.

Pi running airmon-ng. It sees some access points and a printer.

Pi running Kismet. Same thing as airmon-ng.

The Pi was able to consistently and accurately detect around 10-20 access points within the area and I decided that would be a decent range of points to display on the web. Instead of digging further, I moved onto hooking up the structure.

This is the code (as of 3/6/17) uploaded to the FLORA board. It listens for input from the Raspberry Pi via I2C and lights up the LEDs starting from the center of the web. Since only half of the NeoPixel strips were working, I had to make it work with just those strips.

Here is the code for the Raspberry Pi. It uses the wireless dongle and iwlist to scan for nearby wireless access points. Because iwlist doesn’t run on elevated privileges unless the Pi is already as superuser/admin, I had to take a snippet of the source and modify it (iwlist is under BSD license).

Video results of the combination above:

Video is sped up 3x. The structure is bouncing between 14 and 16 access points seen.

Now that both pieces work when connected, I had to make sure things still ran while un-tethered to a keyboard and monitor. I used forever & forever-service so that my wireless scanning script A) will run forever as long as the Pi is on and B) will run when the Pi is turned on. It was difficult to configure since I had an older version of nodejs installed, which confused forever on which version of nodejs to use when it was trying to run my script. Now the Pi is ready to be implemented within the structure.

Tomorrow will be a trip to the ECE Lab, where I will be attempting to fix the other half of the structure and hopefully polishing up the entire project.

Posting reference links I have used:

  • https://oscarliang.com/raspberry-pi-arduino-connected-i2c/
  • https://holisticsecurity.io/2016/02/02/everything-generates-data-capturing
  • wifi-anonymous-traffic-raspberrypi-wso2-part-i/
  • http://www.slidequest.com/q/70ang
  • https://stackoverflow.com/questions/13385029/automatically-start-forever-node-on-system-restart

Update: Web of Things

I’m behind on posts!!! (Noo!!)
Progress has been slow but steady with the web of things! A little behind than I hope I would be.

The Raspberry Pi Zero arrived 1.5 weeks ago and it got setup.

Downside to a small form factor– not enough ports! Thank goodness for USB hubs.

I tried to see if I could setup a remote access into the Pi but unfortunately, it was not possible… Next step: Having a one-way communication with the FLORA board.

In addition to the Pi– I have started on assembling together the off-brand NeoPixels! At first I soldered a few together to test them out…

Attached them to the FLORA board and ran a strand test from the NeoPixel library. They work! Hoorah!

Next up is to add more to them!

Only the first four managed to light– which probably mean I soldered a connection to the LED poorly. Since I wasn’t able to solder at the moment at which this picture was taken, I decided to write up a test sketch that made a random LED blink a random color.

Eventually, the Pi will be sending a command to the FLORA on how many will light up– and this sketch will play a part in it. I’ll also be going back to the ECE lab fixing up connections and soldering up the remainder of the strips.

As for the structure, the string web has been scrapped for a more sturdier structure made of galvanized steel– salvaged from my cosplay prop days.

It probably isn’t super apparent in the image shown, but it’s shaped much like an umbrella, and will either have string or wire hang from the steel wire.

Web of Things Maquette

I decided to order my materials ahead of time but only some of them have arrived and others need additional prep work to be able to prototype with. Bolded are the ones that have arrived.

Shopping List:

  • Adafruit FLORA – Smaller version of the Arduino Uno, used for wearble tech. Easy to integrate if I decide to make my web more thread-y.
  • Raspberry Pi Zero – Needed a small form factor Linux that can communicate with the FLORA.
    • Raspberry Pi case & accessories so I can power it and keep it safe.
  • Wardriving USB Wifi dongle – Has additional scanning capabilities compared to a standard USB Wifi dongle (Can only see Routers/Access Points).
  • 100pc ALITOVE Smart Pixel LEDs – Cheaper versions of NeoPixels. Hopefully will make this project easier to program. They require some soldering before I can use them for prototyping.
  • Fiber Optic Threads – Could be cool to integrate into the web.
  • More LEDs – The standard 2-pin ones in various colors. Just in case!

On the maquette itself, I started making what I would imagine the form would be for my Web of Things.

Didn’t have any sturdy rope so I used several loops of sewing thread instead.

The middle (currently the plastic lid of this morning’s Dunkin’ Donuts coffee cup) would be where the spider and all the electronics would be residing on top of. Keeps the threads in the center distributed.

The upside to this configuration is that it is very lightweight. I can easily knot more strands to the ends and expand upon it. On the downside, it’s pretty flimsy. The web tangles easily and the shape/form of the web doesn’t stay well. I will probably use lightweight wire as the base in future iterations. That way it can still be malleable and still have a “hangy-hangy” look to it.

Also really itching to use the FLORA I just bought, but I haven’t been able to prepare the NeoPixels. Luckily, the FLORA board has one already built-in. Booted it up with the sample sketch Adafruit provides, which flashes the primary colors for half a second, and then runs a color wheel.

That’s ok though. There’s a library function that turns the brightness down!

Next, I played around with fiber optic cables with the current configuration. Strapped one side to the board’s light with a tie clip & an alligator clip and fed the other through the plastic lid. The fiber optic cables really wanted to keep their curled up form so it was very hard to get it to stay in the places I wanted them to.

Bad quality photo. Sorta works? You can see 2 dots, which are the ends of the cable.

Next week I’m hoping the Pi comes in so I can hook it up to the FLORA and get some cross-board communication working. That and making a more malleable web.


Kelly Zhang – Light Art Concepts

Link to Slides: here

Right from the start, I intended for my project to utilize the tech of a Raspberry Pi. What better way than to make it connected to the Internet?

My first idea was a internet-connected flower. The flower would be able to open/close its petals, and wilt much like a regular flower would. Instead of having its roots feed on the nutrients of the soil, it would feed from weather feeds that it gets from the Internet. Its stem would be illuminated by a green LED strip and its filaments would either be fiber optic strands or a small array of LEDs pulsing various colors of light. Depending on what the weather would be on a particular day, the flower may close or open up. Its lights might be dimmer on a overcast day, and glow brightly on sunny days. The irony of this flower is that its display will be the best in a dimly lit room, despite the fact that many flowers thrive in bright sunlight.

On the flipside, I didn’t really have any particular message to go with this piece besides, “it looks cool”.

After last week’s light artist presentations, I got some inspiration for another idea. (winky-face at Veronica)
Janet Echelman’s web-like sculptures gave me an idea of creating something very similar where there is a web hanging from above. This piece would have several threads of LEDs strung together to form this web. Each colored LED would be indicative of a nearby smart device. The intensity of the light would be dependent on its signal strength. This is representative of how connected we are to the World Wide Web, and that we are just a small speck among it.
In the center would be a spider-like creature. Its eyes would emitting red light. The spider would be symbolic of the malware living on the Internet, preying upon unsecured devices. One that comes to mind is the recently unveiled Mirai botnet, where it was able to bring down a significant chunk of the Internet by leveraging upon unsecured smart devices. It would be an interactive piece by relying on the presence of people that use smart devices.
For the sake of the hardware being used and my lack of experience in hardware security, the piece will not connect to the Internet itself. Instead it will simply run some software (probably kismet + custom script) to scan and tell the Arduino to turn on a number of LEDs that match the number of devices found in the area.

After roaming through Adafruit to get a vague idea of how the heck I would electronically piece this together, I came across this:

Which I think would look cool if the LED arrays were rearranged and sewn into a web-like form. This tutorial will definitely be a useful resource when building the LED web.

As I thought more about the Internet of Things, I thought of a twitter account I follow named @internetofshit that sheds some humorous light on how serious the tech industry is when it comes to smart devices. For real though. Some of the things we see and use in our households really don’t need to have the Internet attached to it.

So as such, why not make a completely useless Internet-connected light up USB rock that also nudges back at that good 90’s nostalgia:

Not really though.

The spiderweb concept will most likely be the one I will choose to work on.

Light Artist – Liu Dao

The light artist I selected to present on is the artist collective, Liu Dao (Island 6 is the English meaning).

Liu Dao is a multidisciplinary arts group based in Shanghai, China, with artists coming from both internationally, and from the Shanghai area. Because this artist collective have many different people of many different skills, the group outputs a variety of art using different styles and techniques. In the light art realm, they have works in the following categories: laser, neon, and LED.

An interesting thing about Liu Dao is that most to almost all works created are a result of a collaboration between artists and curators in the collective. Each piece is treated much like how a game or a movie is made, with individuals specializing in tech, art, sound, direction, and production. This eliminates the individual intentions towards the art and focuses more on the collective intention.

“All The Things You Are” – animated LED display with paper and painting on plexiglas overlayed.

Concepts found in Liu Dao’s works often combine modern technology and culture with traditional Chinese art. In many of their LED artworks, a beige background is used to simulate the look of traditional Chinese paintings. Some other artworks include an intricate Chinese papercut piece, which is also a important discipline within traditional Chinese art.

When talking about modern cultures, the fact that Shanghai is a city full of light art in itself is a concept that is reflected upon their neon and laser works. Some artworks also have references from video games, specifically those from the NES and SNES era (Mario, Space Invaders, Duck Hunt).

Presentation: link

Sources used:


Kelly Zhang Bio


Hello, my name is Kelly Zhang and I’m currently a Junior studying Computer Science and Interactive Media & Game Development. My interests lie in experimenting with and building novel concepts using existing technology. I am super passionate about exploring the intersections between art and technology.

Experience with art making

In regards to art making, I am well versed in digital art. I use the Adobe Suite, primarily Photoshop and Illustrator as my tools of the trade.
As for traditional mediums, I enjoy using acrylics and watercolors though I am rusty with those two.

Legend of the Galactic Heroes fanart print. 

Technical Experience

My technical background is rather broad. I have experience making games, web applications, and simple robots. If given the chance, I like using the Raspberry Pi along with the Arduino to bridge the three.

Ricky the Robot. Made them during my internship at MITRE. Is controlled via Unity over a network and displays data it collects on a website.

Other Creative Endeavors

Other creative arts I like to dabble in are DIY crafts. Though I haven’t had the time recently, I also like to cosplay and enjoy making props for my costumes.

Artistic Inspiration

My primary source of inspiration is from my Twitter feed. I follow a lot of artists, game developers, designers, etcetc who often share progress of their work and their inspirations. Other times, I like going to niche meetups in Boston and see what fellow peers in my fields of interest are up to.

My artistic goal:

Constantly learn and apply concepts that I see from existing art into my own.

Recent creative projects I’m proud of:

Heist Night!

I am the 2D artist and web developer for this project. I have learned a ridiculous amount as a result, such as networked code and character concept art.

Concept art for one of the characters: Lulu

Movement in the game. This would be performed on a mobile device.


This was a small VR project done with 2 other people in 24 hours, in which I made the random mad libs generator part of the game. It was very spooky. If you own a GearVR and would like to try it out, there’s a download here.