Preparing to Release Yet Another Javascript Framework

Seems there are a lot of popular Javascript frameworks out there. But none up to the task of building a CAD program in HTML 5.

My work on Encapsule Project Schema (a single-page HTML 5 app that wants to be a CAD program someday) has evolved over the course of this year’s hacking efforts to become a little test harness around a new library I call ONMjs.

STABLE LINK: (archived snapshot of the app as of this afternoon).

Here’s a little bit about ONMjs:

ONMjs is an Object Namespace Manager designed to simplify the task of building reactive, data-driven web components and applications in Javascript.

ONMjs manages data on behalf of your web application, brokers communication between your application’s subsystems, and provides an architectural framework based the principles of Separation of ConcernsSignal Programming, and Component-Based Software Engineering that makes it easy to build elegantly modular, inherently decoupled applications.

ONMjs was created to simplify the development of complex client-side HTML 5 data visualization and editing applications. The library is designed to work well with popular client libraries such as D3js, and Knockout.js. But, you can use ONMjs in many different types of applications, alone or in combination with other Javascript libraries, and in any environment that supports the execution of Javascript code (e.g.Node.js).

The library comprises a small collection of required Javascript classes, and a collection of optional plug-in modules that provide a baseline client-side UI.

With that little background, now go look at the  Encapsule Project Schema app and realize that the only only non-generic part of the entire app is a declaration of the application’s data model. Huh?

In this example the data model defines an extensible “object model” for Encapsule Project’s Soft Circuit Description Language (SCDL) (the declaration is a Javscript object).  This “model” is fed to ONMjs which manages all the runtime data of the app. All the visual elements in the Schema app are currently “observer” plug-ins; they react to changes and leverage meta-data from the model, and data from ONMjs to update the DOM.

This means that you can trivially change the Schema app into a custom editor for whatever type of data you want simply by initializing it with a different model for the data.

I’m working on the docs and getting the code split out of Schema this week for publication of a preview on GitHub. Please follow @Encapsule on Twitter for updates if this subject interests you. Thanks!

ONMjs test harness build.

ONMjs test harness build.

About Chris Russell
This entry was posted in Compute, Design, Internet, Open Source, Software and tagged , , , , , , . Bookmark the permalink.

Comment on this article

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s