Atltvhead is a mashup of interactive art and wearable technology with a message of positivity and encouragement to let your oddities shine!

Similar projects worth following
Atltvhead is one of the first public performance art pieces, centered around wearable technology, that connects the global scale of internet chat to the local people walking in the city of Atlanta.

Let's make technology that helps us connect with others.

Atltvhead Is built from an 1960's RCA Victor Portable Television. I picked it up a little north of Atlanta, Georgia. I thought about trying to refurbish the television guts, which were not working, but ended up with this instead.

As the name implies, you can wear it on your head and see out of it. I walk around the city as a performance art piece, giving away stickers, streaming on Twitch, and interacting with other locals. I like to spread smiles and genuine positive experience. I do not approach people who do not engage with me first. So if you are in Atlanta and see me, say hey!

The build is currently on it's third iteration taking advantage of the ESP 8266 wifi capabilities, my cellphones hotspot mode, Twitch's IRC interface, and FastLED's library. 

You can control the Tvhead while I walk! The tvhead has a function twitch chat bot residing within it. The bot gives people virtual hugs, words of positivity, will take submissions for community goals, and controls aspects of tvheads screen.  See below for chat commands and what parts of the screen change.

This make's Atltvhead one of the first public performance art pieces, centered around wearable technology, that connects the global scale of internet chat to the local people walking in the city of Atlanta.

Tvhead's 2nd build iteration is below.

Playing some tunes while some chat plays my face!  Skip to around 1:40 to see how people manipulate and drastically change the face!

Diffusion Square.step

Diffuser Design for the SK2812 (clones of ws2812b) LED strip at 144 leds/m

step - 60.03 kB - 02/06/2019 at 02:14


LED Release v1.step

Diffuser Design for the SK2812 (clones of ws2812b) LED strip at 144 leds/m

step - 27.84 kB - 02/06/2019 at 02:02


HFGlove - Copy.ino

Updated with active sensitivity adjust

ino - 12.59 kB - 10/07/2018 at 04:11


Atltvhead_2.2 - Copy.ino

Updated with Tvglove actives

- 22.60 kB - 10/07/2018 at 04:09


Wrist Enclosure 1.STEP

Enclosure for the High Five Glove

step - 334.75 kB - 09/29/2018 at 03:49


  • 1 × ESP 8266 Micro on deck
  • 2 × WS2812 Strip per meter of addressable led
  • 1 × Biking Glove or custom if you like
  • 1 × WristBand for the High Five Glove
  • 1 × 3D printer/printing service petg printed out parts for the high five glove

View all 13 components

  • I got a New Camera!!!

    atltvhead04/09/2020 at 21:53 0 comments

    I got an Insta360 video camera for the live stream highlights, and WOW! I have all shots, just edit how I please and have a much higher quality video! It really helps never missing anything, which I did a lot of when I was just using my phone.

    And here are the last of the phone only videos!

  • New Website Database Code for Twitch Buttons

    atltvhead03/31/2020 at 12:58 0 comments

    Wix stopped allowing me to  add random users to my email crm contact list. A bug, but one that seems to persist even if "fixed" on there end. So it was back to the drawing board.

    Wix, does allow a database to be maintained and for the user to build an api to access different elements of one's site. So I set up my buttons to input into the database, based on mouse clicking see code:

    import wixData from 'wix-data';
    $w.onReady(function () {
    	//TODO: write your page related code here...
    export function B4_rainbow(event, $w) {
        //look at database and see the number of results in it. 
    		let record = result.items[0]; //item with values
                    // increment this by 1  
    		record.b_4++; // the rainbow effect is attached to b_4 value in my database
                    console.log(record.b_4); //let me know i've done something
                    //save the new data back into the interactions database
    		wixData.update('interactions', record).then((results) => {
    			let item = results; //see item 
    			} )
    		.catch( (err) => {
    			let errorMsg = err;
    		} );

    Now to build the backend of my site, so I can access the values from an HTTP- request

    import {ok, notFound, created, serverError} from 'wix-http-functions';
    import wixData from 'wix-data';
    // function to read my database, and return a json string of all the elements of my database in it. 
    export function get_readInteractions(request) {
      let options = {
        "headers": {
          "Content-Type": "application/json"
      return wixData.query("interactions")
        .then( (results) => {
          if(results.items.length > 0) {
            options.body = {
              "results" : results.items
            return ok(options);

     But I want a way to store my high fives I get out in person, back into my database. Luckily there is a way to do that as well! (please do not abuse this function, it only makes it seem that I've high fived people, anyway)

    export function put_highfives(request) {
    		let record = result.items[0]; //item with values
    		record.highfives++; // increment this by 1
    		wixData.update('interactions', record).then((results) => {
    			let item = results; //see item 
    			} )
    		.catch( (err) => {
    			let errorMsg = err;
    		} );

     I tried to do a put request at first but kept running into problems. I also don't necessarily know what my current high five count accurately. So I decided the best thing was to just alert my website that a high five has occurred and let it handle querying and incrementing the high five value. Later on I did find a way to put the high five information back into my glove and tvhead, through twitch, but another topic for another day.

    With the website now modified, time to re-write the portion of my python script that read my website. Now more email crawling.

    The http - request :
    def getData():
            rk = requests.get('')
        except Exception as err:
        return datak
    #gets all of the unread messages from the inbox
    def dataCrawler():
        mCheck = True
        while True:
            diff = ot - t
            #I was getting a lot of errors and crashes, so I want to know what is failing. 
            #This section of code does that, and closes out this script. 
            except Exception as e:
                print('Data crawler down: '+ str(err))
    Read more »

  • 57th Atltvhead Stream highlight!

    atltvhead03/04/2020 at 13:41 0 comments

  • 56 Hype!

    atltvhead02/27/2020 at 04:28 0 comments

    Episode 56 Is out!

  • Video Upload!

    atltvhead01/21/2020 at 12:50 0 comments

    After many a month of forgetting to upload videos to youtube, I did it. Here is a big list of past few weeks of the atltvhead project!


    Alright. I have also added some features to tvhead's high five glove! It now records high fives to my online database. I just have the base function working and still need to add in some extra code to switch rows for different dates, but its still collecting the total high fives since implemented!

    I'll do another log for that explanation.

  • Video 51, Video format Changes

    atltvhead11/19/2019 at 21:24 0 comments

    Hey everyone. This project is continuing pretty well. I just rebuilt the front screen, because the old one got pretty gross. I'll include some build photos of that in a sec.

    Editing weekly videos, is just a little burdensome. So I am waiting until I live stream 3 times, then  I'll compile and edit the footage.

    Remember anyone can control the tv screen during the live streams. Follow me on Insta and on Twitch to see when I am streaming!



  • Week 50!

    atltvhead10/22/2019 at 19:02 0 comments

    It was a fun one! Sorry I'll update the videos inbetween soon. Everything is posted to Instaglam at first, then elsewhere. Gotta glam ;) 

  • More Videos!~

    atltvhead08/15/2019 at 03:05 0 comments

  • More Beltline Logs!

    atltvhead06/13/2019 at 02:19 0 comments

  • More Weekly Highlights

    atltvhead05/17/2019 at 01:44 0 comments

    I am working to put in tic-tac-toe as a play mode on tvhead! lets see it happen in the next few weeks. In the meantime here are some more highlights!

View all 37 project logs

  • 1
    Measure your head

    Before anything can begin, you must know the rough dimensions of your noodle. That way you can find a television that will fit around your head.

    Mine was a size alright.

  • 2
    Find your Television

    I searched good ol' Ebay, Craigslist, but found mine on Etsy (surprisingly).

    Mine measured roughly, 14 in x 10 in x 9 in so it could fit just about anyone.

  • 3
    Gut your Television

    Mine opened up, from the bottom.

    The front of my television was also busted, so I had to make some supporting brackets.

View all 15 instructions

Enjoy this project?



Jibril wrote 02/27/2020 at 05:00 point

In the 6th video at first I thought you were on a skateboard then I noticed you were on roller blades.

  Are you sure? yes | no

Jibril wrote 02/27/2020 at 04:42 point

This is awesome I love that its pretty much art for your head.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates