INTERUNIT-UI

a "temporal" UI-design paradigm that replaces WIMP



INTERUNIT-UI

a temporal UI-design paradigm

"What does the user want to use the UI, for right now?",
-- an "interface-unit" services that intent

WIMP

windows, icons, menus, pointers

"What interactive screen-widgets does the developer need to build an app-UI?"

The Paradigm


A UI is a sequence of time-sliced "interface-units" called InterUnits.
Each InterUnit presents an interface behaviour to service a specific user-goal,
and has full control over the screen and all user-input peripherals.
A customisable device-specific app called the EngagementManager orchestrates the loading and unloading of InterUnits,
and maintains some memory of the user's interaction with InterUnits from the point it is loaded.

Advantages of InterUnit-UI over WIMP

  1. Simplicity.
    It's a much simpler for a developer -- it only defines 2 constructs, the InterUnit and the EngagementManager.

    It's much simpler to use -- it does not require the use of menus, icons, and windows.
    The need for mouse usage for fine-grained screen-space selection is removed.
    The need to switch between mouse and keyboard used can be reduced by design.
    It's much easier to onboard a new user to UI usage,
    instead of a documented menu, toolbars with tooltips, and a help system.

  2. Ergonomic-efficiency.
    An InterUnit's source-code is self-contained
    and can be modified independent of other InterUnits and the EngagementManager component that will host it.
    This makes it easy to produce an ergonomically-efficient InterUnit.
    An initial design can be produced and it can be refined over time to improve ergonomic-efficiency.

  3. Better Reuse.
    An InterUnit can be re-used. This re-use is at a user-function level, since each InterUnit is associated with a unique user-function.
    In WIMP, reuse occurs at the interactive-screen-widget level,
    which is a UI-function, not a user-function.
    A WIMP app developed by a developer can't really be re-used by another developer.
    An InterUnit developed by a developer can be re-used by another developer,
    since it's an independent app-component and not an app.
    An app is composed as a set of functional InterUnits.

  4. Memory.
    Since its a temporal UI-design paradigm, it is possible to maintain memory of how the UI was used (unlike WIMP).
    The EngagementManager always maintains a memory reference of what the user was doing last,
    or what they were doing in the past.
    This improves UI-efficiency, since it's easy to start where you left off.
    Using WIMP, this can only be done inside an app, such as the "Back" button in a browser.

InterUnit-UI SDK Licensing (planned)

Khitchdee Design is applying for copyright and intellectual property protection for InterUnit-UI technology.
Our intellectual property attorneys are Mendelsohn Dunleavy, PC ().
A developer tool (Ergonomix) for producing an InterUnits or an EngagementManager is being produced.
We plan to license Ergonomix to developers.

Non-commercial Use

Ergonomix will be made available free for non-commercial use.

Individual Developer Licenses

An individual developer may license Ergonomix for an annual license fee.

Team Licences

A small development team (<10 people) may also license Ergonomix for an annual license fee.
A single team license may be used by all members of a team.
Larger organisations and universities can license Ergonomix at negotiated annual rates.

OEM Licences

OEMs may license the InterUnit-UI SDK to develop UI front-ends for any PC or mobile device (e.g. Android Linux Desktop, Raspberry-Pi)
These licenses will be negotiated and on a per seat basis.


A developer's view of InterUnit-UI

  1. SInterUnit, IUProtocol
  2. Engagement-manager App

SInterUnit, IUProtocol.
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),
and also contains an extension pointer into which an InterUnit-specific protocol is loaded.

An InterUnit Protocol is a software component that loads function-specific function-pointers into an instance of SInterUnit,
and loads itself as an extension inside that instance of SInterUnit.
An IUProtocol consists of a set of UI-gestures that express a user-intent
and a corresponding intent-handler for that gesture.
It is identified by a name that describes its function
and a gesture-set that describes its interface to a user.

The Engagement Manager App
The EngagementManager is a programmable app for loading and unloading InterUnits.
It is transparent to the developer.
It interfaces with a device-specific UI-framework.
It controls an InterUnit through the SInterUnit struct.

Easy to optimize the UI for use-ability

An InterUnit is associated with a specific user-function and differs from other InterUnits based on this association.
Hence, each InterUnit can be optimised for use-ability independently and on a per-device basis.
This makes the development of any InterUnit a lot simpler since the initial code can be refined over time.

Guidelines for improving app-ergonomics

InterUnit-UI suggests some guidelines for improving the ergonomic-efficiency of PC-apps.

  1. Doing away with the Menubar at the top, and the taskbar or status bar at the bottom of the screen, to reduce visual screen-clutter.
  2. Using a visual layout technique generally focused around the center of the screen for the presentation of information to the user.
  3. Minimising the need to switch between mouse and keyboard operation in the course of any user-input sequence.
  4. Eliminating use of the mouse for fine-grained screen-space selection and reducing the usage of mouse-drag operations.
  5. Eliminating the use of Windows.
    Operations such as resizing and aligning of Windows, and, in general, (multiple) Window-layout, should not be needed in the usage of the UI.
  6. Always providing a navigational reference.
    On a keyboard-input based device, the ESCAPE key should always be used
    to return to the previous operational context.
    On a touchscreen based device, a visual icon should always be present,
    away from the center of the screen to provide a way of returning to the previous operational context.

Smartphone-based showcase platform (planned)

The primary functions of any graphical user interface are
selection, timed-execution, text-input and content description.
Content description using a GUI is a good way to validate its efficiency.

We plan to showcase InterUnit-UI by demonstrating the Specifier app
on a specific smartphone-based portable-desktop platform:

The platform uses:
an iPhone 15 Pro or Samsung Galaxy S25 or Motorola Signature smartphone,
an HP E14 G4 FHD screen
an Apple keyboard with Numeric Keypad,
and a specially designed cradle.
The primary function of the Specifier is:
a (visual) description of 3D objects, or processes relating to 3D objects.
Hence it's a good way to validate the usage-efficiency of this planned platform.

The A17 Pro SOC (iPhone 15 Pro)

Apple's A17 pro SOC contains a 3.78 GHz ARM ISA based microprocessor,
a 6-core graphics engine and a 6.4GHz DDR4 memory interface.
It's a well designed low power SOC that can easily be used in a desktop design environment.
It can drive a 4k screen at 30Hz
and has enough processing power for graphics intensive applications
(that have high computational requirements).

The Snapdragon 8 SOC (Galaxy S25, Motorola Signature)

Qualcomms's SnapDragon 8 SOC

The HP E14 G4 screen

This is a 14" FHD portable screen.
It has a small built-in battery and a well designed hinge that folds open to a 78 deg screen-angle.
2 USB-C input ports for charging or display data.

We use a small Xiaomi 4900 mAh Powerbank to keep the screen charged
and an AirPlay receiver dongle to connect to it wirelessly.

The Apple Magic Keyboard with Numeric Keypad

This is a lightweight, compact form-factor keyboard.
It connects wirelessly over Bluetooth. USB-C charging port.
It is the same width as : and half the height of : the HP G14 E4 screen.
The numeric keypad adds full size arrow keys
which are used as part of InterUnit-UI design-conventions.