Flip Overview

A lego-like package for Flip

Flip is a data model library designed as a framework. It is real-time, collaboration-oriented, transactional, portable, compact and handles even complex data structures.

Essential Features

  • Single author applications can be adapted to support simultaneous co-authoring with no extra work
  • Undo/Redo and history are automatically handled (no action classes)
  • Copy/Paste can be done automatically, or refined to your needs and your data structure
  • Allows for offline mode and three-ways merge
  • Multi-threaded/multi-process architecture
  • Transactional
  • Server side is limited to data model code, making it less prone to bugs
  • High stability
  • Performance oriented, extensible, and future-proof document formats
  • At the core of Ohm Studio's unrivaled collaboration solution
  • Designed for easy integration with all kind of data structure, including decade(s) old ones

Supported platforms

  • Flip works for Windows, MacOS, Linux, iOS.Android and Web are coming. Please contact us if you're interested in a partnership on a pilot project!

Multi/single user, good practices

The library is conceived to let developers test their programs in a single-user context with the ability to easily adapt it for multiple users. Great effort has been made to minimize impact during the integration process. No server is required during development. We've also set some good practices over the last few years to help you implement a solid architecture that will stand the test of time and be able to meet new needs.

Flip Lego undo redo

Undo, redo, history, copy, paste

Flip's very structure makes it unnecessary to manage undo and redo with specific code, which allows for the fast implementation of new industry-specific functionalities. The library can generate one or many undo/redo histories according to your needs.

Likewise, you can implement copy/paste with the same simplicity, while enjoying the unlimited possibilities of customization offered by this feature.

Document format, document version, validation

Flip supports a text-editable back-end writing format as well as a binary one. This has many advantages, including:

  • Parsing the binary format is fast and portable
  • The ability to use a text editor in debug mode, which offers outstanding readability with the text-editable back-end

Being able to use a text editor in debug mode is a tool that offers outstanding readability, even with documents weighing 100Mb+. It is simple and efficient, no matter how complex the model is.

The document works on its own version. Graphs of multiple versions are available (branches for A/B testing for instance). The document conversion system has been successfully tested in production environments, and even with radical paradigm changes.

Another Flip's tool allows you to set up a dynamic model validation system, regardless of the complexity involved. It can even handle structural model validation with no additional code. It doesn't generate orphan objects; in fact, none have been encountered in over 10 years of development.

Thread/Process Flip

Using optimistic replication, Flip documents can be easily shared between threads or even processes without locks.

Flip handles complex Data Structure


Flip is a middleware designed to integrate with external engines without imposing its own architecture. IDs, references, and any other system used by external engines can be integrated in Flip's engine, without the need to maintain specific glue code. Each Flip object can store multiple represented objects. While coded in C++ it's bridged in many other languages and if not, we're happy to create the bridge you need.

Flip's unique change detection system within a document lets client code parse the change in any direction to meet an external engine's object lifetime constraints.

One small thing before downloading...

    You want to know more about Flip and we want to know (just a bit) more about you before you proceed to download.

    (we guarantee this will be kept private. Your informations will not be shared.)

    Your Name*