Noam is a messaging platform that allows you to create complex interactive products by easily networking hardware and software elements together.
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.
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)
Load the Lemma libraries, specify a host
lemma = new Lemma(this, "lemmaID", "Desired Host"); and start listening for messages:
lemma.hear("YourTopic", new MyEventHandler());
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.
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.
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.
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.
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.
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.
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.
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.
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.
Download the starter kit, launch the Noam app, name your Host and you’re ready to go.
Launch the example applications included in the starter kit and check out how topics and messages work.
Download the Lemmas that will help you add your own Guests to the conversation.