Welcome to the Leonardo Framework Homepage

Leonardo Framework for Education

What is Leonardo?

Leonardo is an Open Source framework for building cross-platform applications related to education.

The Leonardo API is designed for providing developers a flexible and robust OOP structure to create high-quality educational softwares with the Flash Platform.

One of the aims of the Leonardo project is to extend computers from mathematic and physic fields to all Learning Sciences, without any distinction.

The Leonardo project is distributed under the terms of the GNU-GPL3 license.

Leonardo Framework organization

The Leonardo Framework contains several different parts that are organized around the "Leonardo core API". According to this organization, GUI implementations are completely separated from the Leonardo APIs.

The framework has two main APIs:

  • the org.flashapi.leonardo package contains the core API for the main framework,
  • the org.flashapi.codex package contains MVC applications built on the top of the core API.
MVC applications contained in the org.flashapi.codex package do not implement their own GUI, except the LeonardoDisplayObject instances they use.

Both of the main APIs are used by third party applications released with the Leonardo Framework.

Leonardo Framework Organization

The MIOC Architecture

The Codex API introduces a new level of abstraction for the MCV design pattern: the MIOC architecture (Model-Input-Output-Controller).

In the MCV software architecture,

"the view renders the model into a form suitable for interaction, typically a user interface element. Multiple views can exist for a single model for different purposes. A viewport typically has a one to one correspondence with a display surface and knows how to render to it." (See Model–View–Controller.)

In the MIOC architecture, the view is replaced by an Input-Output API, which is an abstract Interface for interactions between the GUI and the application. It means that the GUI is completely separated from the MVC architecture and is no longer a part of the application.

The MIOC architecture does not indicates whether the Input and Output interfaces are seperated in two different objects, or not.

This concept has been introduced within the Codex API because of the strict separation of the Leonardo API and the GUI implementation.

The MIOC Architecture

Leonardo Extensions

The Leonardo Framework contains several additional parts that allow to extend the project capabilities.

Mona Lisa

The Mona Lisa API (org.flashapi.monalisa) provides a robust structure for building software GUIs from the top of the SPAS 3.0 API. By using the Mona Lisa extension, developers will be able to create professional educational softwares fast and easilly.


The Vitruvius API (org.flashapi.vitruvius) contains the localization classes for the Leonardo Framework.

Project logos

The Leonardo project logos are available for download at the "Press section" of this site.

Development Previews

Documentation pre-release

Go to the Leonardo documentation pre-release page.

How can I contribute to the project?

We have setup a page where you can define, according to your profile, how you can contribute in your best way to the project, being a teacher, a developer, a typewriter, a translator, a designer or anyone not mentioned here.
There is always a way to contribute.

Please see our contribution page. (Not available yet.)

Share this article:


There are no comments yet for this article.

Leave a reply

Your email is required but will not be displayed.

To prevent abusive emails, please enter the numbers you see in the image below:

Security code