Giter Club home page Giter Club logo

chromeweblab's Introduction

Web Lab

Web Lab is made of up 5 Chrome Experiment installations that bring the extraordinary workings of the internet to life and aims to inspire the world about the possibilities of the web.

The installations have been part of a year-long public exhibition at the Science Museum in London and can be interacted with by anyone, anywhere at chromeweblab.com.

Worldwide visitors both on and offline will be able to make music with people across the world; launch information into cyberspace and see where images on the web live; watch their portrait being processed, translated, and then drawn in sand by a robot; and travel instantly to far away places all over the world.

This Open Source project makes two of the experiments - Orchestra and Sketchbots - available for you to build and host yourself.

Why Open Source?

We fundamentaly believe that what we have learnt building and developing this project should be available for everyone to learn from and be inspired to build upon.

There is a lot of new technologies in this project that the WebLab was the first major project to use in production. getUserMedia for example was integrated in a single day on the day it landed in Stable Chrome.

Why not all 5 experiements.

We had to start somewhere and the two most popular and interactive experiments seemed like a good idea.

Is this the exact same code as in Web Lab.

Yes and No. We used a HUGE amount of the code, but there are parts of the weblab that detract from the core-experience so we have removed them (such as user account management).

You have the ability to build the hardware and controllers to the same level we had them in the museum, and we improved the launch experience too. Heck, we even added some features such as WebRTC to the orchestra just for this project.

Pre-commit hook

We use Git Hooks in this project to allow each contributor to run the exact same procedures before committing code.

To install the Git Hooks used, just open your terminal, locate the folder of the project and run ln -s ./pre-commit.sh .git/hooks/pre-commit

chromeweblab's People

Contributors

brianhinch avatar justincouch avatar michaelsanford avatar paulkinlan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

chromeweblab's Issues

files required that don't exist

In the file ./Orchestra/sw/realtimeserver/weblab/orchestra/LiveManager.js there are files being required that no longer exist in the project files.

21 var PlayerLayout = require("./data/PlayerLayout"); 22 var MuseumUser = require("./user/MuseumUser"); 23 var MuseumClient = require("./user/MuseumClient"); 24 var MessageEncoder = require("./utils/MessageEncoder"); 25 var MessageIds = require("./constants/MessageIds");

What shall we do about this, if anything?

Decouple OSC from project

Currently it sends very specific commands, this stops other people from creating drivers to existing hardware that can't be changed.

Make SketchBots mobile friendly

TODO we can split these out if needs be:

  • Define the viewport
  • Define the breakpoints for the media queries
  • Check it all works with Touch (you can emulate this on a desktop in Chrome DevTools)
  • Create the UI for the appropriate break points.

Currently the Sketchbot looks like this on a desktop:

screen shot 2013-08-13 at 6 42 47 pm

However, on a mobile screen it is all cut-off

screen shot 2013-08-13 at 6 45 33 pm

I am not quite sure how it should appear on mobile yet, so comments should include screen shots.

Arduino based Solenoid controller

Have an Arduino attached to the hub via a serial port. Send the orchestra configuration over it.

The Arduino will process the orchestra pattern and activate a series of 4 solenoids that act as the notes on an instrument. Or 8 if it is two player!

The player can then attach the solenoid to any surface to create different sounds.

Inspiration: https://github.com/mcqn/RFIDrum/blob/master/RFIDrum.ino
http://uk.farnell.com/jsp/displayProduct.jsp?sku=9591664&CMP=KNC-GUK-FUK-GEN-LISTINGS&gross_price=true&mckv=8xfSXgBz|pcrid|23407365549|plid|

Make Orchestra work on mobile

TODO we can split these out if needs be:

  • Define the viewport
  • Define the breakpoints for the media queries
  • Check it all works with Touch (you can emulate this on a desktop in Chrome DevTools)
  • Create the UI for the appropriate break points.

Currently Orchestra looks like this on desktop
screen shot 2013-08-13 at 7 04 55 pm

And like this on mobile
screen shot 2013-08-13 at 7 05 09 pm

I am not quite sure how it should appear on mobile yet, so comments should include screen shots.

Add mobile web support

The UI for the Sketchbot and the Orchestra need to be updated significantly to get it working on mobile.

Add pre-commit hook for grunt-jsbeautifier

Shall we add a pre-commit hook to make sure the project is adhering to the style guide before it gets committed?

Very trivial to implement but good to keep consistency in the project's codebase

Create a start script for SketchBot

It should:

  • Check all the dependencies
  • launch the UI server --- optional output to a file
  • launch the robot controller --- optional output to a file
  • open the browser to the page.

Document MAX more throughly

The MAX integration is a little abstract and not documented.

Now that I have MAX licence we should be able to at least document what is happening and what the OSC->MIDI software is doing.

Create an Arduino Orchestra Controller to control and panel of LEDs

The hub has a pluggable module system that lets you strip out the OSC/MIDI stuff that is alrady there.

A developer could create an Arduino sketch that reads from the serial port and based on the data toggles output pins that attach to an LED array and will replicate what the user sees on the sequencer board.

For example, even though this is Bluetooth you could build this: http://www.youtube.com/watch?v=4lL3AH8_jH4

Or you could get a couple of these and patch them in to a grid... http://oomlout.co.uk/collections/extra-pieces/products/led-matrix-8x8-bicolour

Fix indenting on JS

The JS is a bit of a mess, it needs to be formatted correctly and consistently.

2 or 4 spaces.

Hook up Sketchbot to RepRap

The Sketchbot produces a series of lines and vectors which in isolation might not be great for a RepRap however it could either just output everything separately or create a simple base, or join every line together.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.