Trianglix

Trianglix - Unleash triangular power!

Trianglix is an orthogonal multi-user secure self-hosting Triangle System written entirely from scratch! This is the realization of the vision for the Graphical User-Interface of my operating system, Sortix. This is the fruit of hard work since 2011, where the original design principles for Trianglix was proposed. The Trianglix Desktop Environment is literally a revolutionary new experience based on scientific data gathered from weekly testing sessions. It stands up against the awful Windows and OS X experiences that everyone are cloning and completely redefines the general-purpose computing environment with new superior concepts.

Note: Trianglix has been merged into the latest Sortix release. This is the original release from 2014. You should use the latest Sortix release and simply run the 'trianglix' program. If you want want to change your Sortix desktop environment to Trianglix after login, simply run:
sed -i s/:sh\$/:trianglix/ /etc/passwd
If you want to bypass the login screen and boot straight into the root user, run:
echo single-user > /etc/target/init
You will then boot straight into Trianglix on the next boot, like with this special 2014 release. While in Trianglix, you can always run type
sh
and press enter in order to return to a traditional Unix-like environment that only crazy circular people would use.

Implementation

Trianglix uses the paradigm that everything is a triangle, in stark contrast to the Unix principle that everything is a file. Each triangle has three edges (input, output and error) and represents a Turing-computable triangular function, expressed through well-formed Triscript written in Runes and senary digits. Triscript is a powerful and expressive language unlike anything ever developed before. It doesn't belong in the classic categories of programming languages such as imperative or functional, but is perhaps best described as angular flow-like esoteric programming. The system is implemented as a series of executable triangle servers wrapped around the all-powerful core Trinit root triangle, which is built upon the kernel angular virtual machine.

Security is provably correct and the system administrator sets forth the policy. The Trinit server (written in unverified Triscript) verifies its wrapping triangles to ensure the angular descriptions uphold the triangle inequality and the various Pythagorean properties.

The system is self-documenting and display useful diagnostics targeted at the system administrator and the average user. The current triangular state is constantly visualized as a revolving polygon of actions built from invisible triangles centered around the root triangle (keyboard), which also acts as a compatibility Unix command interpreter on filesystem triangles.

This 2014 prototype of Trianglix is constructed as a personality upon the Sortix operating system, in parallel to the traditional Unix experience that ships with Sortix. Indeed, the Unix environment is accessible and merges somewhat well with the Trianglix environment in the name of compatibility. This has allowed us to recycle the existing compiler infrastructure available on Sortix and the system is self-building.

Scientific Design

Trianglix has been systematically designed from the ground up as a novel user experience while disregarding all established and flawed existing knowledge on usability. The project originally began as a large number of prototype operating systems, each exploring user interface concepts completely orthogonal to existing experiences. These esoteric prototypes has polished and merged into what is now known as Trianglix, through the use of weekly testing sessions during all of 2013 and early 2014.

The current studies from late March 2014 shows that Trianglix delivers the intended user-experience. Remarkably, the metaphors and concepts employed tend to be so unfamiliar to the average computer user that theNotice users may wish to go to |Root> |Administration> and |Disable Runes>.y are stunned with indecision as they can apply none of their existing computer skills. Preliminary work has begun on a compatibility mode where the system trains unfamiliar users basic skills during the first few minutes. Research shows testers did not benefit from more than basic usage information. Indeed, users could not be told how Trianglix works, or even shown it, they had to try it for fifteen minutes themselves before discovering and becoming comfortable with the hidden features.

The system will eventually have a touch interface, but the work is incomplete, and instead navigation and computation is done using the keyboard. There is absolutely no mouse control because a mouse (with and even without scroll-wheel) cannot be accurately be represented as a triangle or angular unit without it being a leaky abstraction. The system is internationalized and starts in a linguistic compatibility mode until new users has had a chance to adapt to the new linguistic and alphabetical concepts that aid in triangular computation.

Entertainment

This prototype release ships with exciting games such as asteroids and quake. It even comes with C and C++ compilers and a full development environment. The more advanced users can benefit from doing their advanced computation through the special Trinit Core environment, where users have full and raw access into the Trianglix internals (not recommended for novice users as they can inadvertently cause massive system damage).

Future

This is still an early prototype, and while it is perfectly usable for office work or home entertainment, it is a very good representation of the design ideals that drive our ground-breaking user-interface work. Much of the effort has been spent on capturing the classic asteroids and quake games as triangular constructions, as opposed to being programs written in imperative C.

The Trinit Core is implemented as an emotional state engine and visualizes its stability as emotions expressed by the central root triangle object. Users can thus discern whether system administration is required by examining whether the root triangle seems happy or angry. The core also keeps track of user emotion by examining the user's typing speed, which allows it to determine the user's confidence. Advanced features are deliberately hidden from users that do not act with the sufficient confidence. This implements the What You Feel Is What You Get design principle. In the future we wish to enhance the experience and protect against false positives by deploying facial recognition from web-cam data.

This release only comes with a basic BGA video driver, which utilizes special virtual hardware only present in particular virtual machines such as Qemu and VirtualBox. You must use one of these two virtual machines (or compatible) to run this release of Trianglix. You will not be able to succeed in properly booting it on real hardware.

Trianglix is available for ix86 and x86_64 systems.

System Requirements

Trianglix has moderate system requirements.

  • A virtual machine with BGA support, such as VirtualBox or Qemu.
  • A 32-bit x86 (with SSE) or 64-bit x86_64 CPU.
  • You likely need twice as much RAM as the size of the initrd, i.g. the size of the bootable disk. 1 GiB RAM is recommended.
  • A harddisk or cdrom drive or support for booting from USB.
  • A multiboot compliant bootloader if booting from harddisk.

Known Problems

There's a few important problems that you should know of:

  • You must use Qemu or Virtualbox to access the required graphical interface.
  • GRUB may simply lock up with no message if you don't provide enough memory.
  • Quake save games doesn't work as printf doesn't support floating point numbers yet, you will be unable to load saved games.
  • You cannot boot it in Qemu unless you pass -vga std and -m 1024 (or any suitable amount of memory, see above).
  • Notice users may wish to go to |Root> |Administration> and |Disable Runes>.

Builds and Downloads

You can boot Trianglix from a CD-ROM ISO and booting it using a supported virtual machine such as VirtualBox or Qemu. The builds are compressed using the xz algorithm and needs to be decompressed before use.

Be sure to consult the system requirements and the known problems above.

You can download the latest stable release of Trianglix from https://cs.au.dk/~sortie/trianglix/release/2014-04-01/builds/.

You can download the full source code of the latest stable release from https://cs.au.dk/~sortie/trianglix/release/2014-04-01/.

Running Trianglix with QEMU

You can easily run a bootable disk image with the qemu virtual machine. Depending on which CPU you wish to emulate, run something like:

unxz sortix_0.9dev_x86_64.iso.xz &&
qemu-system-x86_64 -m 1024 -vga std -cdrom sortix_0.9dev_x86_64.iso

Or:

unxz sortix_0.9dev_i486.iso.xz &&
qemu-system-i386 -m 1024 -vga std -cdrom sortix_0.9dev_i486.iso

Screenshots

You can view the collection of odd screenshots of Trianglix at https://cs.au.dk/~sortie/trianglix/screenshots/. Please keep in mind this collection has grown over the years and many screenshots accurately represent the current state of things - some screenshots show experimental features that might never have been released or finished.

License

Copyright(C) Jonas 'Sortie' Termansen sortie@maxsi.org and contributors 2011, 2012, 2013, 2014.

Sortix is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the COPYING-GPL and COPYING-LGPL files for more information.

See the individual files for copyright terms. If a file does not contain a license header, you can assume it is released under the GNU General Public Licenser, either version 3 or (at your option) any later version. This includes Sortix-related experimental branches and repositories found on Gitorious: these things are so experimental that I might not have added copyright statements.

The build scripts might not contain a copyright license in which case they are covered by the standard license for the software component they relate to.

Unless the license header in the source code states otherwise, the Sortix kernel, the filesystem servers, the initrd tools, the utilities, the games, the benchmark programs, and the tix package management programs are licensed under the GNU General Public License, either version 3 or (at your option) any later version.

Unless the license header in the source code states otherwise, the libc library and the libdispd library are licensed under the GNU Lesser General Public License, either version 3 or (at your option) any later version.

The Sortix math library (libm) is licensed as described in the libm/LEGAL file.