Muscle Memory Optimized Fractal UI, designs I did back in 2010

I want to share some old designs I worked on back in 2010.

Then I was designing a completely new type of UI based on fractality of everything, together with our company adHD Oy Finland, together with Jyri Hovila, Taina Peltola, Jani Salminen and Aki Tåg.

Our company didn’t really take off, but we did a lot of design and some simple prototypes. We had ambitious plans, but we didn’t get any further than the planning stage and implementing some simple UI prototypes.

Our idea was to build a Linux based operating system, that would have completely new UI paradigm. Jyri had the idea of the Linux based operating system, and I was thinking about the UI side.

SuperYber konsepti.001

We were pushing away from the notion of computers having to imitate books, or other traditional media, like tablets and phones were doing back then. Where is the real intelligence in that? Or smart as in smart phone ?

It only smarts to use, trying to replicate old world paradigms like pages, tabs, files etc in a modern environment. We don’t have to anymore limit ourselves to something traditional with new digital platforms, so why cling onto old ways to think ?

We could create something for the purpose from the ground up, that is optimized for that use case, but instead it seems many just try to imitate already known analogue user interfaces, transferring those into the digital world, which to me doesn’t make much sense, except from the point of having familiar terms to work with and bring people in.

But those files, folders and floppies and all user interfaces paradigms we have been so used to back in the day in the physical world, are now dead. I mean, who uses folders anymore ?

floppy-disk-save-button-icon-65887

When was the last time you saw these? This used to be the universal icon for saving a document

They have went the way of the famous floppy disk as the save icon, young people don’t even know what a floppy disk is, and the same is with many UI paradigms we still stick to.

Fractal User Interface

Working together as a company, we had a problem, a problem all teams and companies have: how to share information efficiently? How to see at one glance how the project was doing and how the team was completing their tasks ? No current software we looked back then was able to provide that view, in a way that you could just see from a single page, a single glance, what was going on with your team and your project ?

I started wondering, why were so many team collaboration software (definitely back in 2010 at least) designed around the concept of books and pages and so on, that fit poorly in a web environment ?

Optimal situation would be to have an immediate visual overview of what is happening in your project, without having to go through different pages, tabs, issues and so on to see what is going on with the project. I wanted to have an immediate view onto how the project was doing, without having to dig any deeper in the UI.

I really wondered, why stick to old paradigm in the thinking of how things should be done ?

SuperYber konsepti.002

So I started to think outside the box, designing from the get go what would an intuitive user interface look like,  for seeing how a project was doing. It would naturally be built around the people connected to a project, and people completing tasks for the common nominator in the center, the project, that everyone would be committing work for.

SuperYber konsepti.003

I was starting to imagine this as a tree, taking something from the nature and starting to build around that concept in my mind. A traditional list, or box based UI didn’t feel like a natural choice, so we began from the very simple roots (ha!) of what it is to build an user interface and what would feel natural for the user.

The main UI was based around the idea of building an UI based around one usage paradigm:

Everything is Fractal.

Here we can see an design based around that concept, designed for a discussion forum app. It would use a fractal tree node based interface for displaying data:

fraktal_preview_01_full

Design for a discussion forum app (click for full version)

branch detail

Branch detail from discussions

The idea was that all data displayed in our UI would be based around fractal tree nodes, and that same structure would be repeated for different data all over the system. In the picture above, we show a design for a discussion forum, but this same model could be used for contacts, messages, files and all the data you have on your phone.

 

This would mean that only one set of UI paradigm would have to be designed, and that same UI model could be re-used all over. No more re-designing every part of the UI, just design one part really well and repeat that!

No more multiple types of menus, drop downs, windows, whatever you need in traditional UI to visualize data, but only one set of really well working interface that would be replicated all over the place.

Fractality of Usage Patterns

We wanted to go further with the fractality of the design, and not just represent it in the visuals of the system. We wanted the usage of the system to be fractal in nature.

This means, that you only have to learn a set of certain hand motions to do any action. And you could use these same actions in every context in the UI. This is sorely missing from modern UIs, where you have to constantly change your muscle actions, leading into not being able to program the muscle memory efficiently, not being able to learn and remember different parts of the UI instantly.

For example, when you learn a sport, or play a game, first you think about it, but the main goal is to be in a state of not thinking about the action being performed, just do it, flow with it.

With modern computer UIs, this is very difficult if you are not using the keyboard, as with mouse and other position based UI’s, you constantly have to keep your attention on the screen, and figure out what does what. This is not optimal for storing the actions into your muscle memory, as the actions are constantly moving into different places, and you cannot just forget about the context and perform similar actions without thinking.

fingerpos

Our UI was designed to be used primarly by hand motions, touch screens in mind back then. So that you would only have to learn a set of certain actions, and repeat those same actions in different contexts, all over the system.

This, I believe, would result in a UI where you can flow through the usage, without thinking about it too much.

Currently, for example, if I want to save this document, I have go through this thinking pattern:

  • What key is used to save this document ? Okay, ctrl+s in this app. Press that.
  • What if I don’t know or remember that key ?
  • Look through the menus. File ? Document ? Okay, it’s under Document in this app.
  • Go through the menus, that are always different for each app, so I have to move my focus into the menu and position my mouse exactly in the ‘Save’ position and click there.
  • Look at a message from the app, was my document saved or not ? Where is the application telling me this ? Oh, in the upper right corner in this context. Ok.

So many specific and accurate actions needed for such a simple action, if you don’t remember the keyboard shortcut. And keyboard shortcuts are perfectly fine, but in a mobile phone or a tablet, you don’t have a hardware keyboard to rely on.

So I have to constantly keep my focus on a simple action I repeat maybe hundreds of times a day, switching from app to app, then figuring out again where to exactly position my mouse cursor or my finger, and how to do that.

Why cannot there be a single paradigm and action to take care of this ?

The main problem is the changing paradigm, and the fact that I have to focus on the action to perform pixel perfect movements. This takes away from the main focus of performing whatever you are doing in a creative flow. It all can break the flow, and move you away from the state of creativity to a state of bafflement and possibly even forgetting what I was doing at all currently.

Universal Controller

In the center of our UI would be this controller, termed Chakana -controller, as it was based on this Inca Cross formation, containing within it the Golden Ratio and Pi, modeled after the Chakana:

 

This cross came to me from a south american friend back then, and we studied it and found that it contains within the ratios at least for the Phi and the Pi, so in a way it was information stored in visual formation. In traditional South American culture this formation was the basis for many architecture, music, design etc, and they had the idea that each direction represents some basic element of life.

So we took this design, and applied the idea that you could control the UI with 4 different major directions, each direction representing an universal concept, like ground, air, fire, water and other universal concepts, and then seek out how those concepts would map onto when working with documents or when sharing contacts, or other actions depending on the context you were working on.

vlcsnap-2017-07-19-17h21m23s546vlcsnap-2017-07-19-17h21m07s998

For example here you would see the chakana compass appear over a contact in your Today list, enabling you to share when selecting the upwards direction (Sharing, Air, Putting it out there, No-Time) modify when selecting down (Modify, Earth, physical action, the Now moment), see your call history (History, Past, Water) and also maybe see your future calendar contacts when selecting the right operation (Future, Fire).

Not all of these would of course map directly to these concepts, but we had the idea that if you remembered the general idea behind every major direction, you could then apply that to each operation in some sense, and you would always have an idea what direction you need to take in order to achieve some action that is related to that concept.

vlcsnap-2017-07-19-17h21m31s008vlcsnap-2017-07-19-17h21m35s952vlcsnap-2017-07-19-17h21m40s002

Here you can see some idea what these major directions could represent. The main idea was to map your muscle memory in a way to one direction, and then you could know what that specific direction does generally in different contexes.

Resulting hopefully in a more natural user interface, where you don’t have to read and understand all the time what you are now operating on, but creating a flow state through the usage. We never got to the phase of testing this in action, except some prototypes I implemented later for GeoKone (now OmniGeometry), but which I never put into production yet.

vlcsnap-2017-07-19-17h21m53s868

Solu Computers Implementation

I was kinda happy to see that Solu Computers were working on a similar user interface later. I actually worked there in late 2016 for couple of weeks, so I got to work on their UI for a bit too, but it just wasn’t my place to be at the moment, although their solution implements this fractal idea pretty much as I had visioned back then. So, hopefully Solu will get their computer and UI out :)

Future plans

I still have plans to implement parts of this UI, maybe for OmniGeometry or Geometrify in the future. Hopefully I will find somebody to help me implement this, so this is also part of why I want to share this information, so I can show people some of our plans.

Anyway, this was enough of past plans made in 2010, hopefully soon I will be able to implement these designs :)

This was inDigiNeous, aka Sakari, signing off!

Fraqtive – Great Fractal Generator.. and how to build it from source on Mac OS X

Ok, time for something different now, I want to mention this great Fractal Generator Software I’ve been playing around with for a while now, called Fraqtive. This is the best Open Source fractal generator that I’ve used, and the great thing is that there is native versions for Mac Os X, Linux and Windows, so it works full speed on all three major platforms.

It uses the QT toolkit for cross platform support. Too bad the listed version on the Fraqtive download page for Mac Os X is version 0.4.3 as I type this, and the newest release is 0.4.5 which adds support for exporting high resolution images, which is the feature I really wanted. So I had to compile a new version myself. Luckily, it was all pretty easy once I figured it out, for Mac OS X you just need to have the development tools installed (Xcode) and then download and install the QT SDK. I’m writing this on Snow Leopard, and have no idea if this works on any other release, but it should.

After this, you can open the fraqtive.pro QT project file in QT Creator, select the Build type from Debug to Release from the bottom left build selector, run Build All and wait for it to compile. Now you can find the finished build in /private/tmp/fraqtive-build-desktop/release/fraqtive.app. Just copy this directory to /Applications and it should work.

This build is now dynamically linked, so if you want to copy it to another machine, you have to install the corresponding QT libraries also. I tried to look at how to build a static version of the QT libraries, but this seemed like a task too complicated for now, and anyway, I need the QT SDK so might as well go with the dynamically linked, as it works faster and takes much less space (~700k vs ~5 mb).

Anyway, here’s a screenshot of the program:

Fraqtive on Mac Os X

Fraqtive on Mac Os X

I really like the custom palette generator that allows easy palette manipulations to create some nice effects on the fractals:

Fraqtive Palette Editor

Fraqtive Palette Editor

One nice feature is also the option to save the position and palette independently, so you can apply different palettes to the same image to create different results:

Warm Palette

Warm Palette

Cool & Dark Palette

Cool & Dark Palette

Just wanted to share this great program with you. Also, I made some cool high resolution widescreen fractal wallpapers, check them out :)

 

Are Sysadmins the Shamans of the Digital Realms ?

I’ve often noticed that the world of computers and technology relates to the actual analog world we live in. In this post I want to compare and speculate on some of the similarities in the Digital Realms and our Analog Realms. The structure of this text is still kinda random as the subject is kinda random too, but I hope to present some analogies that are interesting at least from the view point of a computer programmer/sysadmin.. I’m going to publish this now, although the structure needs some more work yet, but this has been floating in my drafts box long enough now.

When People of the World walk on the living entity called Earth, through it’s paths and gateways of natural occupation like water flowing down rivers and animals running through paths in the mud, so do the Digital Entities living and appearing through processed and evolved earth materials (silicone, gold, aluminium) in manifestations of these possible paths that are also called Microprocessors & CPUs, memory gateways, processing cards, power units and so on. Anything that routes electricity or light through it’s integrated pathways can be considered to be a living organism in itself.

CPU Infrastructure

CPU Infrastructure

Fractal Tree

Fractal Tree

What are CPUs basically? Big meshes of Binary Fractal paths where digital information can travel. Structured digital forms of very simple lifeforms, that can react to their surroundings, inputs and outputs. Just like human beings, but in a very much more simplificated form. For Computers and Humans the most earliest memories and primitive reactions are stored in the Basic Input-Output system or BIOS.

Computer BIOS

Computer BIOS

Human Basic Input Output System (BIOS)

Human BIOS

“A good comparison to further understand the functionality of the BIOS would be to say that the BIOS is the Computer equivilant of the human hypothalamus. The hypothalamus regulates body temperature, blood pressure, heartbeat, metabolism of fats and carbohydrates, and sugar levels in the blood. It is the subconscious nervous system sometimes it’s called the brain of the brain” (from http://www.basicinputoutputsystem.com/).

As we walk the paths in the forests, so does electricity and by now light also travel through these fractal paths inside a CPU and makes it’s own realm more perfect through binary decisions, choosing paths, travelling through different gates and branches along the binary fractals. Software which tells how to move along these lines carved in the processed sand is stored in the Genetic Memories of Computers, or BIOSes.

Computer Pathway

Computer Pathway

Human Pathway

Human Pathway

BIOS is the basic foundation for creating a model of the Internal Universe inside a computer. More advanced ways to interact can be installed by the Users. The Operating Systems, Realms or Universities in which the programs run can be related to different real life Universes and to viewpoints of different religions in our modern life. Certain beliefs and expectations are set upon different classes of Operating Systems and machines.

Humans have their own ways of building their picture of their world, ruled by different belief systems and religions. These systems are more complex than seemingly simple operating systems or artificial life models, containing programming that is expressed in the basic structure of the Language that humans speak, and most importantly, Language is the symbols we Think In.

Humans can also be programmed, and are programmed foremost by their relationship that they have to their parents, the male and female energies that we are all born out of. The play of polar energies, ying & yang, north & south, black & white, the duality, where in every situation can be thought to exist six degrees of freedom in movement, and from that comes the paradoxical play of duality in everything we experience in this 3D-plane of existence that our planet Earth is situated in from Humans viewpoint.

3D coordinates, six directions of freedom

3D coordinates, six directions of freedom

3D Ying Yang, Play Of Polarities

3D Ying Yang, Play Of Polarities

This play of duality can be seen in the binary operation of computers also, potential differences of binary 0 and 1. Everything in computers is based on the measured voltage differences between different logical operations, gates that either let through current or don’t. Computers are programmed by placing restrictions on the flow of current from point A to point B.

Binary Potential

Binary Potential

Humans are programmed through their energies in their environment, social relations, things they sense and relate actions, emotions, feelings, sensations to. Human Programming is implemented with language, behaviorinal modification, audiovisual programming and external stimulus. Basically humans are programmable biocomputers, sensing the world based on duality of everything. Our operating system are different thinking models, religions, and belief systems.

There are many different philosophies related to different Operating Systems. The Operating System basically defines the Universe in which different Software, or Digital Life, can run. One particulary interesting is the GNU Way of Things, where all information is shared and believed to be beneficial for the whole User Community. User interaction is the key factor in developing a better world and a better way to run these Digital Realms, as contributing members of the Open Source movement. Where every piece of code shared can potentially contribute directly to the World they are Running in. Other developers can improve and build upon these shared foundations of code, effectively Spreading the Love.

Sharing Is Caring, Pirat Byran

Sharing Is Caring

GNU Is Not Unix

GNU Is Not Unix

Systems running GNU/Linux are derived from the UNIX way of doing things, and also from UNIX comes the way of running software inside the OS. Big part of these systems are the different processes handling background shuffling of information through the kernel, BIOS and CPU. In UNIX these background processes are called Daemons.

Human Demon

Human Demon

BSD Devil

BSD Devil

UNIX Daemons seem to be The Digital Manifestations of so called Spirits the Greek called Daimon, Mysterious Gods of Ancient Time, or “Supernatural Beings Between Mortals and Gods, such as Inferior Divinities and Ghosts of Dead Heroes” (Plato’s Symposium).  They act in the digital realms as opposed to the old “analog” realms of past life. They act between the Divine (The Machine) and the mortal (The Users). They are not of the malevolent kind (demon), but more like Demigods delivering messages between the user realm and the realm of binary.

The deal with UNIX Daemon processes is that they act as mediators between the User Software Processes and the Operating System. Like the process initd that is started right after the kernel has bootstrapped itself and created the Universe where the Daemons can play. Initd then starts other processes according to the settings The Sysadmin has setup in the system. Thus is the Universe created and it is time to wait for the users to start asking the Daemons if they could run their own programs.

Sysadmin Of The Universe

Sysadmin Of The Universe

Galaxies Born

Galaxies Born

Then according to different rights granted by the God of The System, or the mysterious ROOT account which There Can only Be One in any given installation of an OS and even if you rename the user or rename, his/her user ID will be Zero and thus there can only really be only One True God in any Universe (or running instance of any OS), Always Identified by his user ID which is Zero. And Zero is the number of which he will be identified.

Divine Spark

Divine Spark

You never are the mysterious root account, as there can only be one root account per OS. But you can become the root account by means of rituals and summonings of medium spirits that let you be in touch with God. One such medium software to summon the almighty root account is ‘su’, or ‘sudo’. Providing the user knows the correct spells, or passwords, he/she can be granted for a moment superpower rights. But these powers come with a responsibility, as the user has also the power to trash their system or make it completely unusable. With power comes responsibility, same thing as in the analog world.

Shamans also carry  the power to alter their Realities and the realities of others.  Shamans interact with the mystical powers of the Universe, communicating with Angels & Demons, realizing these higher aspects of ourselves and working together with them, using spells and rituals that help them to achieve what they want. With this power comes great responsibility, when used improperly can cause great disturbances in the balance of everything, even leading to thrashing the very system we operate in.

Aren’t UNIX processes God Parts of our Computers who the “Shaman” or “Sysadmin” as is the term used in the Digital World, Communicates With and tries to make peace with these Demigodlike processes ?