Crafting with joy

Collider.JAM is a hand-crafted JavaScript game framework for game jamming, creative coding, prototyping and beyond.

Unlock your creativity and productivity by following the jamming way.

And pixelate reality!

Run It

Collider.JAM is multiplatform. Created games can be run on Web, Linux, macOS X, Windows, Android, and iOS.

A web browser is a primary target and the whole toolchain is developed around the modern web.

Learn It

We believe, that the best way to learn to program is by creative coding, experimenting, modeling, tinkering, and playing.

Collider.JAM takes the most popular programming language and wraps its rough edges into a simple and easy to use framework.

When you don’t have to worry about DOM, CSS and complex interactions with an MVC framework, JavaScript becomes a pleasant language to develop in.

Collider.JAM can give you a joyride into programming.

Grok It

The essential core of the framework is small - just little over 3k lines of JavaScript.

Collider.JAM is not a typical JavaScript library and has zero dependencies!

There is no terrible bloat that plagues most modern JS libraries and frameworks.

To grok the framework, use the latest documentation or just hit F1 on any Collider.JAM project running in debug mode (e.g. jam -d)

There is also Jamming Card you can print for quick reference.

Mix It

The top modules of Collider.JAM are called mixes.

During a game jam, you are ‘mixing’ independent units to shape the prototype. And mixing is straightforward - you either include a unit as a whole or patch the content into your mix.

To extend contemporary game frameworks or engines you need to use some kind of Plugin API.

Collider.JAM doesn’t have any - all plugins/modules are essentially just unit folders that follow the same convention as Collider.JAM itself.

And Collider.JAM provides a way to combine those any way you like.

Play It

Check out examples and game jam entries crafted with Collider.JAM on

Change It

Collider.JAM is open source and distributed under zlib license. Meaning you can explore it, use it, fork it or extend it any way you want.

Enjoy It

You can get into the jamming flow only when tools won’t be in your way.

The following are some of the reasons Collider.JAM works well.

No user interface creep

You don’t need a bunch of panels, tabs, buttons and menu options on the screen to create something fun and playable. In fact, rich UI can be in the way of flow and creativity.

Collider.JAM development flow is mostly text-oriented. Text is still the most compact, expressive and powerful tool to work with data and code.

There are a bunch of UI tools for specific purposes. But you use them only when needed.

You still can use any external tool. It is just files and folder after all…

No boilerplate in resource loading

In Collider.JAM you never do things like:


All resources are automatically loaded, preprocessed and bounded to the scene.

No imports

There are no imports or usage directives of any form.

Code and data are loaded and bound to the scene just like any other resource - by putting files in appropriate folders.

No class hierarchies imposed

You don’t have to extend from an ugly internal class or prototype and write a lot of boilerplate code just to get a simple circle on the screen.

And though Collider.JAM provides some traits and prototypes for convenience, a node on the scene can be any arbitrary JavaScript object.

There are a bunch of conventions for particular types of nodes, but these are optional.

Circle It

Collider.JAM removes the hassle and boilerplate. It makes simple things simple.

To have a circle, just create a folder circle.mod with a single js file inside.


function draw() {
    fill(.4, .5, .5)     // HSL color values
    circle(100, 100, 50) // circle coordinates and radius

That’s it! Now just run from console:

jam play

You can find more bits here.

Check it out

Look at Collider.JAM main repo and core components.

Explore the source code of various games:

Join the Invasion

Like Collider Labs Facebook Page.

Follow the development on Twitter.

Join the discussion on Discord.