diff --git a/examples/html/random-color-pixel-strip b/examples/html/random-color-pixel-strip
new file mode 100644
index 0000000000000000000000000000000000000000..7de1b7c80dae3990e3cacad8acc4c622beb4d8f8
--- /dev/null
+++ b/examples/html/random-color-pixel-strip
@@ -0,0 +1,150 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
+<style type="text/css">
+
+    body {
+        background: #222;
+        color: #ddd;
+        font: 15px verdana;
+    }
+
+    #connectionStatus {
+        font-weight: bold;
+        font-size: 20px;
+    }
+
+    label {
+        display: block;
+        width: 100px;
+        margin: 10px 0 0 0;
+    }
+
+    input {
+        width: 400px;
+        height: 25px;
+        margin: 10px 20px;
+    }
+
+    span.value {
+        font: 20px monospace;
+    }
+
+</style>
+<script type="text/javascript">
+
+    /*
+     * Experiment with random Color Queue      
+     */
+
+    $(function() {
+
+        function hexToRgb(hex) {
+            // http://stackoverflow.com/questions/5623838/rgb-to-hex-and-hex-to-rgb
+            // Expand shorthand form (e.g. "03F") to full form (e.g. "0033FF")
+            var shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
+            hex = hex.replace(shorthandRegex, function(m, r, g, b) {
+                return r + r + g + g + b + b;
+            });
+
+            var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
+            return result ? {
+                r: parseInt(result[1], 16),
+                g: parseInt(result[2], 16),
+                b: parseInt(result[3], 16)
+            } : null;
+        }
+
+        // Scrape values from our form
+        var color = {r:0,b:0,g:0};
+       
+        // Set all pixels to a given color
+        function writeFrame(red, green, blue) {
+            var leds = 60;
+            var packet = new Uint8ClampedArray(4 + leds * 3);
+            // console.log(packet);
+            if (socket.readyState != 1 /* OPEN */) {
+                // The server connection isn't open. Nothing to do.
+                return;
+            }
+
+            if (socket.bufferedAmount > packet.length) {
+                // The network is lagging, and we still haven't sent the previous frame.
+                // Don't flood the network, it will just make us laggy.
+                // If fcserver is running on the same computer, it should always be able
+                // to keep up with the frames we send, so we shouldn't reach this point.
+                return;
+            }
+
+            // Dest position in our packet. Start right after the header.
+            var dest = 4;
+            
+            //http://www.paulirish.com/2009/random-hex-color-code-snippets/
+            var myRandColor = '#'+Math.floor(Math.random()*16777215).toString(16);
+            var myHtmlText = "<div style='color:" + myRandColor + "'>"+ myRandColor + "</div>";
+            var myObj = hexToRgb(myRandColor);
+            $("#colorQueue").append(myHtmlText);
+             
+
+            // Sample the center pixel of each LED
+            for (var led = 0; led < leds; led++) {
+
+                //protection against null from random color.
+                myObj === null ? myObj = {r:0,b:0,g:0} : myObj;
+
+                packet[dest++] = myObj.r;
+                packet[dest++] = myObj.g;
+                packet[dest++] = myObj.b;
+            }
+            socket.send(packet.buffer);
+        }
+
+        // Animation parameters
+        var lastTime = 0;
+        var phase = 0;
+
+        // Animation loop
+        var animate = function() {
+
+            // Get time delta 
+
+            writeFrame(
+                color.r,
+                color.g,
+                color.b);
+
+            setTimeout(animate, 3000);
+        }
+
+        // Connect to a Fadecandy server running on the same computer, on the default port
+        var socket = new WebSocket('ws://localhost:7890');
+
+        // Put some connection status text in the corner of the screen
+        $('#connectionStatus').text('Connecting to fcserver...');
+        socket.onclose = function(event) {
+            $('#connectionStatus').text('Not connected to fcserver');
+        }
+        socket.onopen = function(event) {
+            $('#connectionStatus').text('Connected');
+            animate();
+        }
+
+    })
+
+
+</script>
+</head>
+<body>
+<form>
+
+    <div id="connectionStatus"></div>
+
+    <h3> Next Color: </h3>
+    <div id="colorQueue"></div>
+
+    <br/>
+
+</form>
+</body>
+</html>