(an InterUnit is a temporal interface-unit as defined by InterUnit-UI)
It is developed in C++.
It can run on Windows, MacOS or Linux, based on wxWidgets.
Ergonomix is implemented using InterUnit-UI and is hence very simple to use.
A developer can use Ergonomix and pattern their InterUnit design based on it.
Ergonomix includes a CodeEditor InterUnit.
Source-code can be edited in and exported from the CodeEditor,
and loaded into and built using a platform-specific IDE
Khitchdee Design's Specifier app for industrial-design specification is being implemented using Ergonomix.
Every InterUnit is implemented as an instance of a C++ struct called SInterUnit.
This struct is initialised with function-pointers for its base functionality
(such as a drawing to the screen and responding to user-input events).
SinterUnit contains an extension pointer into which an InterUnit-specific protocol is loaded.
A specific InterUnit loads function-specific function-pointers into an instance of SInterUnit,
and defines and implements an InterUnit-Protocol (IUProtocol).
An IUProtocol is defined as a set of UI-gestures that express a user-intent
and a corresponding intent-handler for that gesture.
The SDK provides implemented IUProtocols for:
1) a source-editor for editing the source-code of an InterUnit and
2) an engagement-manager that loads and unloads InterUnits,
interfaces with a device-specific UI-framework,
and provides an entry-point for a device specific app.
Formatted character processing utilities are provided.
They serve as an example for integrating data processing into an InterUnit.
A C++ source-code data processing system is provided.
It includes structures to represent C++ source code,
parsers to parse a source-code file,
navigation utilities to search within a codebase structure
and editing utilities.
This system can be modified to produce a similar system for .html, .css, .js, .svg or custom data file-formats.
A screen-layout utility is provided that represents the screen as a controllable hex-lattice.
For graphics, a hex-grid representation system is provided that implements a hex-grid,
transformations on hex-coordinates and between cartesian and hexagonal coordinate systems
(in both 2D and 3D),
and other utilities useful in graphics applications.