What is it?

Bridge the gap between hardware and software.

Noam is a messaging platform that allows you to create complex interactive products by easily networking hardware and software elements together.

How does it work?

Make complex conversations simple.

Technology has a very human problem—everything speaks a different language. Getting hardware and software talking in a single coordinated conversation is a challenge. Noam hosts the conversation, provides translation between languages, and handles passing messaging between guests. With Noam creating multi-element prototypes is simple, flexible and powerful.

Supports
Diverse Languages

Noam supports the platforms and languages you're already using. In Processing, for example, sending a message is as easy as typing
lemma.sendEvent ("Your_Topic", YourMessage)

Simplifies
Networking

Load the Lemma libraries, specify a host lemma = new Lemma(this, "lemmaID", "Desired Host"); and start listening for messages: lemma.hear("YourTopic", new MyEventHandler());

Easy Scalable
Architecture

The Noam server installs in seconds and can handle hundreds of guests and thousands of messages between guests that share the same WiFi or Ethernet network—free yourself from the constraints of serial communications.

Diverse Uses
& Application

We've used Noam to prototype digital interactions in a car simulator, create sensor laden intelligent adaptable spaces, and kinetic sculptures with a 100-strong array of moving LED light bulbs.

Why Noam?

Create More, Code Less

We believe the world is full of untapped creative potential. Noam was designed to make building interactive prototypes easier for makers and developers of all kinds. It is optimized for flexibility, simplicity of use, and support of common technology dialects.

Simple & Powerful Messaging

It’s easy to use a variety of messages without worrying about servers, protocols, encryption, queues, time stamps, or other configuration efforts. Noam balances simplicity with power so that you can build more and code less.

Designed for Experimentation

When you’re prototyping, you’re experimenting and flexibility is paramount—Noam makes it easy to play with different inputs and outputs to create or interpret the same messages.

Open Source. Community Supported.

We built Noam to solve a recurring problem we encountered during prototyping. Now we’re hoping you’ll help us make it better by using it to create and sharing code you develop with the community.

Open Source, Open Standards

We used the best open standards and frameworks available like Ruby, Sinatra, JSON, and TCP. Noam is intended to be shared and adapted freely as open source software.

Community Enabled

Noam’s growth as a platform depends upon your contribution. We’re hopeful the community will add features, write new Lemmas, and share components so we can all build more and code less.

Technical Details

Tech Specs & Architecture

Noam is a networked implementation of a pub/sub pattern using TCP/IP protocols.

Noam uses a speak/hear asynchronous event-based messaging metaphor.

Noam Lemmas register to ‘hear’ named Messages, and execute asynchronous call-backs when those Messages are heard.

Lemmas can also ‘speak’ named Messages, and the Noam server will pass the Message to all Lemmas that have registered for it.

Message data is transmitted in JSON, allowing for type-agnostic Lemma methods.

Discovery and registration with the Noam server are handled automatically by the Lemma, the only public methods exposed to the application are the ‘speak’ and ‘hear’ methods.

Get Started.

1. Install the
Noam Host

Download the starter kit, launch the Noam app, name your Host and you’re ready to go.

2. Try a Noam
Conversation

Launch the example applications included in the starter kit and check out how topics and messages work.

3. Add your own
Guests

Download the Lemmas that will help you add your own Guests to the conversation.