• Register
Post feature RSS SpaceSys mechanics

Mechanics, and what they will be. We will update this thread as often as we can) In this thread we will talk about how SpaceSys will work in the future, the way things behave, and what improvements we will make to our UI. Some of things described here might change, and we may implement a completely new feature so those that really read this much, please have understanding. We will make an addition to this post later on, so check back later once more.

Posted by on

System interactions

The way SpaceSys interact with system is that we have complete control over Windows shell.

Meaning that right now we have a way of implementing everything that you can see in Windows environment into our UI; context menus, popup screens, progress bars, task bar, properties and other information that you can get from your system.

Only thing that we cannot do is to have other software screen output inside our 3D environments, like IE, or Mozilla, some of them (mostly open source software) can be streamed on to the texture inside 3D environment and most importantly - Chrome browser. With Chrome implemented you can have all of the internet content in 3D with VR, you get the picture :)

What you do in SpaceSys is actually done on your file system. So once you get your hands on it, don’t delete something you might miss later, as you are doing it for real. That goes for all file operations!

We have "spaces" as folders and a global space that serves as desktop - the environment itself. We are still keeping the files in the environment as a shortcut to the original file, as we still need to make physical "global space" folder on pc a special type of folder, similar to Windows Desktop folder.

One other thing that we miss now is the drag and drop files from and to our UI. We will implement it later on when we cover all the file operations first.

One of the more important treats of SpaceSys is that we are controlling OS, and OS does the hard work, at the same speed and efficiency as before. You are just controlling it through a live interface that we created.

Space interactions

The spaces are the analogy for folders in SpaceSys. You can have hundreds of open spaces in the world (if your hardware can take it) We designed them to act exactly as you expect from a folder, you can do all operations inside and between them as you are used to in Windows explorer.

Icons inside spaces are made of simple 3D objects that have a texture extracted from original icon images from Windows. We had lots of problems getting the best image quality and few of them look bad, that depends only on the icon image size and type (few of the lazy devs make only 32*32 pixels images for icons). Also we had a lot of special cases icon types shortcuts, install shields, etc… Few of them need a touch to be shown correctly and we will handle those later.

Spaces can be moved around together with icons inside and you can enable or disable collision for them. Also spaces can serve as an anchor to which you can focus on.

We need to implement much more mechanics to spaces, like icons sorting, list view, detail view, etc… Also we need to have maximize / minimize buttons, close space button, paging bar. For the last thing we need space scale, where you will be able to scale it down 1000 times the size together with icons and text, normally that will demand voice controls or keyboard shortcuts to find them later.

Spaces will be able to anchor to one another, you will be able to make a wall of spaces, you will be able to transform any folder into space and to create spaces out of all subfolders, have them move in front of you without you moving, just rotating them and we will talk more about that later when we start working on it.

Currently we disabled creating of spaces from any folder that you want, we gave you couple that cover mostly everything. There is a bad side effect to that, when you click on a folder in global space, you open up windows explorer. We will handle that later when we sort out spaces/folders enumeration.

These are just the basics of a “Space” there is a lot more to say and we will as the time comes.
Some of the things we need to discuss are, current open files (from some space), multiple items from multiple spaces selections (thing we miss in windows), spaces taskbars, etc...
I must add that the current shape and size is still defined by us but later on you will be able to choose everything. Type, size, colors, fonts, and physics.

Icon interactions

Icons are shown in two ways now, icons in spaces where the icon is a simple 3D object with a texture that we take out of windows icons and then there are the 3D icons that you have in global space / world. We created more than 1000 3D icons for most commonly used software and file types. Most users will have all of the icons in full 3D in the environment.

Currently we are still working on user generation of 3D icons in the world. You can drag any icon from the space but it will stay 2D for now. We are thinking on creating a map, or using windows one to immediately transform 2D icons from space to 3D icons that we made, while you drag them to the world. We still don’t know if we will be able to do it automatically or the user will have to define each type by themselves. We will eventually do it automatically but mapping thousands of file types will take some time.

Icons saving in the world is done now, you can sort out your world / desktop, and when you start again they will be there. (Sounds trivial I know) Each world will have its own set of icons, as user defines it. You will be able to propagate world settings later on. But for now each is for itself.
Icons can be moved around the world. They have physics, and are affected with collision and other forces (that will come later).

There is a whole lot of mechanics planned for icons and I think I could write for hours on just about the possibilities that we opened up.
Mechanics that we will implement for global icons in the near future; sorting icons by size (physically shown), date, type, name, shape, etc...
Icon path finding, icon AI (propagate to world positions or position with a predefined task), selection saving, selection exports. There is a lot more to be added, but these features are essential for SpaceSys.

Item movement

Movement of items trough the world such as icons and spaces and later on various canvasses, objects like media player, context menus, taskbars and such.
Right now we implemented basic controls for movement, when you click and hold with left mouse button you move the item but only on x-z, when you hold control or mouse button 4 you move it with y-z, (you can change the bindings) with the right mouse button click and hold you rotate the item, but only on x-z. Now that is what we use so far, it behaves ok, for mouse and keyboard input.

We want to implement "carry mode", where you select items and carry them with you, at the same distance from where you picked it up. That might be easier, also select and group items into a shape then move around. We need to play around with that and we will do it soon.

As soon as you turn on Kinect or Leap motion, things get serious. Then you have an option to grab items and carry them around. That will behave a lot different than what you have right now, and since Kinect 1 is so imprecise we put the development of gesture controls on hold until we get Kinect 2 in our hands.

Leap Motion support is still on hold. We need one more dev in our team just for Leap Motion as we see now that the technology is getting widely accepted and easy to use. With leap you will be able to choose things and move them in 3D as you are moving invisible stuff in front of you. That feels natural in VR, and a bit strange on normal screens.

What is also important about hand and gesture controls is that you use one hand for player movement and other for item controls. We will implement three different types of movement, one is free flight that you have now, one is absolute world control and for the last a "fixed" mode.

Absolute world control, is where you grab and move the world around you and control items with other hand. Fixed control mode is jumping around anchors in the world by using voice commands, gestures or shortcuts to focus on them.

Other hand will be used for selections and operations. There will be 2 kinds, one is free selection where you will control mouse cursor and execute commands by gesture, voice or context menu.

Second type will be fixed selection between existing items on the anchor point. If you come to a space and focus to it, you will just browse the items there with the hand, without mouse. Together with voice controls it will be intuitive, like you are working with real life items in the real world, and if you are in VR you will have that feeling.

These are just the basics that I am talking about here. There will be joypad / joystick support, and even EEG headsets for thought control but we will talk about it later. Right now, we need more developers and more support to work on all of it.

Context menus

Currently when you want to call context menu on an item, we call and show Windows menus. In the same time our engine is on hold waiting for user response or command from the context menu. Creating our own context menus is the next big thing that we will implement.
We will do it in 3D as expected in a 3DUI, we need to call Windows context menu on the selected items in the background, count how many items it has, what is the context of those items, and read out the text from the menu. With that info we dynamically create menu object in 3D that has all the items from Windows context menu, render the text to texture on the objects. (We are still working on the look)

With that we will become independent from windows menus, and set our UI free from suspension while waiting on user command. You will be able to have every context menu in SpaceSys, no matter on which items was it summoned it will be there.
Creating such object that will be dynamically populated with shell items enables us to create couple of more items such as progress bars, properties also, popup windows and such things, all of that will be implemented shortly after creating our own 3D context menu.

You can check out the first take on context menu here:

since context menu becomes a world object and we have absolute control of its appearance we can play with how it looks and behaves. Later on we will enable modding of the same, so every user will be able to change the context menu as he wants. To choose from, colors, transparency, size, life duration, movement, creation, animation, in one word - everything.

We can create any kind of graphics for the context menu, and we will play a bit with that, but we will make it to resemble what Windows users are used to for now. Later on we might make different kind of menus.
We will also integrate SpaceSys specific context menus that you will call upon items with ALT-right click or something similar, we still need to decide.
That is enough about menus for now, I hope it makes sense to you.

World behaviors

Our worlds, or better said environments, will each have its own behaviors or even sets of behaviors that will be diametrically different to the next one. Enable different kind’s environment effects to immerse user into the environment.

To better explain what I mean, you have seen the paradise island environment. It has real-time day/night transitions, we plan to connect those transitions to your clock on pc, so you will have the correct time of day. Also if it is a cloudy day your environment will be cloudy or raining. You want be able to have snow there :) but there will be a glacier environment later on. We want force the user to use those possibilities that will be a choice.

Transitions between environments will also become seamless in the future. Right now you have to shut down SpaceSys to load another, later you will be able to load other environments in a blink of an eye. Worlds serve as desktops, and each is different, as normal desktops at your pcs, so, lets say you have multiple users, all can have their own world setting or use different worlds. Settings will be easy to export and even modified. When you sort out icons and spaces in the world of your choice, you will be able to export those to another world. Or build a completely different layout.

Worlds will have their own games, and when you wish to play one, you will be able to stop hide all the icons and spaces, or whatever you have open to just play a game.
You will be able to build your own later on from scratch using an editor, and we will talk about that more when the time comes.


Multiuser / Multiplayer functions inside SpaceSys will be something that will change the perception of our UI drastically. Imagine file sharing, gaming, virtual servers, MMO worlds, all with the possibilities to do it together with friends.

First we will implement simple multiplayer, for the games that we will implement, each world will have its own game/s. After that we will enable users pulling out items to his own world.

We can’t talk about that here just jet, it is still far in the future and on our drawing board. But just picture a MMO Cloud made in SpaceSys, imagine watching movies together with friends in a virtual world, while thousands miles away. That might give you an idea where we are headed.

Object properties
Windows Popups & Progress Bars
Media Player
We will write more about these soon.
Post a comment
Sign in or join with:

Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.