A listing of random software, tips, tweaks, hacks, and tutorials I made for Ubuntu
SythOS – An experimental collaborative OS
A rather long time ago (around a year and a half), I wrote a post about a system I was making which was supposed to be a cloud-based OS, named CosmOS. I didn’t really develop it that much, as I had a rather vague sense of what I wanted to do with it, and I immediately had problems with implementing the most basic concepts. Most of the idea was actually quite boring, and had already been developed by others. But since I had gone through all the trouble of making a tool for creating it (relinux), I decided to try it anyways, and just radically changed the whole design. And I did. I also found that I couldn’t have used the same name, as CosmOS was already the name of at least two different OS’s, and it was also the name of a directory of linux OSs (among other unrelated usages), so I kind of got that I had to change the name.
The name is actually based on two words, Synergy and Lithosphere (I was going to call it LithOS, but it sounded like some kind of boring scientific and/or business-oriented OS, if you know what I mean). I know, kind of an odd combination, and the reasoning for it is a quite far-fetched, but heck, it’s an unused name, and it sounds cool! Lithosphere was used as a creative way to say “ground”, because it’s not cloud-based (unlike CosmOS, in fact), and it’s also designed to be “down to the ground” with you. Instead of you adapting to the OS, the OS adapts to you (will explain how this works later). Also, the Synergy part is because since it’s completely with you, it allows nearly everything to be done much easier and simpler, reducing the amount of time both the users AND the developers need to do nearly everything (except for the engine… :-/).
The OS itself is principally designed under the following goals:
- Help the user to become more productive within it
- Extremely intuitive
- Extremely easy to collaborate on anything
- Extremely customizable
There is only one software that I’m aware of that does this well: Minecraft (creative mode). Okay, forget the productive element, but still, anyone can pick up the pace on how to use minecraft extremely quickly. Also, if you’ve ever played it, you’ll know how easy it is to collaborate on building something. You don’t need to use a VCS like git or mercurial to build something. Just get someone else on your server, and build together!
That’s kind of my idea with SythOS. You are inside a 3D environment, windows are mapped to 3D surfaces (I had this idea from Wolfenstein Qt, but it appears to already have been implemented: http://www.youtube.com/watch?v=_FjuPn7MXMs), and the environment is modifiable, using a minecraft-like in-game “level editor”. Other people can connect to your computer (if you allow them, of course), and then you can work together on projects (such as coding, audio, video, or even games) at the same time! Of course, for this to be effective, you have to have somewhat compatible software (you can’t both work on the same window for rather obvious reasons), but even if the software you use isn’t “compatible”, taking turns, and being able to see what the other is doing real-time is still way easier than using some kind of VCS or worse, emailing files back and forth, right? Also, with the chat and mic/audio features that are planned, you can also make meetings and/or “calls” (kind of like skype does, except without the video) within it.
Here’s a list of features that are definite:
- 3D virtual world
- Windows mapped to the world
- MMO-like online presence
- World is Minecraft-like
- Different tools and blocks (inspired by minecraft)
- Hand tool: Allows you to do basic edits to windows (such as moving, resizing, and closing), and allows you to use windows, plus allows you to remove blocks
- Kill tool: Allows you to kill processes, based on the windows you hit, and, of course, allows you to remove blocks
- Various blocks, which allows you to place them, and remove other blocks, plus allows everything the hand tool allows you to do
- Portal tool: Allows you to create portals to different rooms, so as to decrease the time needed to go between two different “workspaces”
- Whitelist, Blacklist and “Asklist” for everything (great for multiple user computers, and/or online interaction)
- Quake-like terminal with multiple tabs, but it can be used to place any kind of windows, not only terminals
Other features that are planned, but not definite would be:
- Some kind of game engine, so you can create 3D objects that interact with the world (though it’s definitely not limited to games, it could even be used to create fancy movie creation software, or 3D modeling software)
- Facial expression recognition, so your character’s face will match your expression. This is definitely not an important feature, and if it is ever implemented, it will probably be quite far-future.
- Video… somehow… (no idea how to elegantly do this though)
Now for the point of this post (the reason why I’m writing it): Would you use something like this? If so, or if not, why? Any ideas and/or comments on this?
About the possibility of it being implemented, I know that it is possible, but I’m not sure how much time it’ll take me to do all of this (and I’m not sure if I’ll have the stamina needed to do this). I’m planning on releasing a prototype by the end of this summer (2013) though.