The official GUI for Artipixoids! project.

It is integrating natively with Xentica framework, but you may also use it to visualize your own step-by-step simulations.

The engine is dealing nothing with rendering, it’s relying fully on frames rendered with your simulation. So, you should manually implement the stuff like zooming or scrolling, and bind the actions to keyboard/mouse/etc events.

The only thing Moire doing right now, is keeping the rate of your rendered frames, speeding simulation up/down as necessary. Also, system info dialog is included, showing current timestep, frames/steps per second and simulation speed.

Main App (moire.main)

Main module containing the base class for Moire GUI.

All Moire apps should be ran using GUI class. See the example below.

class moire.main.GUI(**kwargs)

Bases: object

Main class for moire GUI.

Moire apps should be ran with it in following way:

runnable = YourRunnable()
gui = moire.GUI(runnable=runnable)

The engine is fully relying on your custom runnable class. It should implement a number of features like perform a simulation step, render frame etc. See the detailed example in the official NoiseTV example.

Parameters:runnable – Runnable class, implementing all necessary features.

Prepare GUI for running.

class moire.main.MainEngine(app, *args, **kwargs)

Bases: object

Class incapsulating main Moire engine functionality.

Parameters:appGUI class instance.
background = <ObjectProperty object>

Kivy property containing Rectangle with rendered frames.


Exit the app in convenient way.


Emulate key down.


Do main preparations before app run.

runnable = <ObjectProperty object>

Kivy property containing runnable class.


Update the whole app, while keeping the frame rate.


Update System Info widget with actual data.

viewport = <ObjectProperty object>

Kivy property containing rendered frames as Texture.

class moire.main.ObjectProperty

Bases: object