Page 1 of 2

3D GUI idea

Posted: Thu Aug 06, 2009 12:07 am
by AndrewAPrice
I have a concept for a 3D GUI. Though I would love to have this in my OS, it requires 3D accelleration so at this point in time it seems more suitable as a Windows or Linux shell.

It's a single-tasking shell (so you're only doing on thing at once, though built on top of a multi-tasking system so servers and background programs and the like are still running) and it's targeted at entertainment/gaming machines rather than a workplace/business machine (where WIMP and CLIs are still the most productive interfaces).

My idea is that your operating system's environment in a 3D city. The way it works is that when a program installs, the city allocates it a 'lot', which is basically a 2D patch of ground of a specified shape/area. The shell will find a place to fit this plot, or grow a road out if it can not be fit in.

On this plot of land, there is an API exposed, where the program (not the entire program, more like a low over-head loader that is ran once to cache the geometry of the plot into memory so it can be rendered, the actual program is launched when you enter the plot). This API effectively allows program to construct 3D geometry onto the plot of land. For example, a media player would construct a movie theatre, a go-cart would construct a warehouse that looks like it may hold an indoor go-cart track, a file manager will construct a high-rise office building.

When you walk onto a lot, the loader launches (which should be small and load fast) which can stream a much larger program if it'd like. The exposed API will allow you to interact with the geometry and user (move it with custom physics, show a dialogue for interfacing with NPCs, access input, etc).

There are other things the program can do, for example it can render to a texture in the 3D world (for example, render your movie onto in a cinema, and in the program's code it specifies that if you press a button the camera lines up so the cinema screen is covers your entire monitor so you can enjoy a movie).

You can also have a portal (effectively a wrapper around a texture you render to, with a helper API to make a seamless transition in/out of the portal) and on the other side of the portal the code have full control over exactly how things are rendered. For example, a file manager may look like a large skyscraper that exists as 3D geometry in the city from outside, but when you walk inside you unknowingly went through a portal and the file manger is in direct control of all rendering (so for example, inside there could be 1000s of corridors representing directories that doesn't align to the size of the building outside).

Another example of a portal is you go into a Go-Kart building representing a Go-Kart game. Once inside the warehouse, you're connected to a server so you can see other users walking around (perhaps have some global Avatar) that you can chat to. You could walk to the track when you're ready to race and get into a Go-Kart, then in front of you, the track leads into a dark tunnel with a gate closed. A timer counts down (which is the game loading in the background) and once the track is loaded the tunnel opens and you seamlessly drive out into a large open track (which actually exists in the program and not the city).

Other ideas of lots for representing programs in the city are:
- An E-bay auction house where you can explore listings in 3D, with different floors being different categories.
- A post office for e-mailing.
- A Paypal bank.
- Military barracks for a first person shooter game.

Perhaps a web browser someway. But, I would encourage each website that wants to have their own building that could be downloaded and placed in to the city.

Once the city grows quite large, there will be a above ground train or underground subway for transporting around. As for servers and drivers, I was thinking for them existing underground, each server/driver having a plot of land that you can interact with. For example, to change your network settings you have to go into the core of the city and there will be data cabling infrastructure, and you interact with an NPC - the possibilities are endless. Perhaps the task manager can exist as the form of a police station or city council (to kill any background servers/drivers).

I was also thinking, rather than just having one of each program, for example a file manager or movie player, there would exist several different themes (or anyone can write their own) so a person can personalize their city however they want. You'd also need at least one building representing a package manager in the city so you can install/uninstall other programs.

I was also thinking of extending this idea so you could log on to someone else's computer and interact with their city (though certain rooms in the file manager, as well as underground access to the servers, would be locked).

Re: 3D GUI idea

Posted: Thu Aug 06, 2009 12:30 am
by manonthemoon
It sounds like a unique and interesting idea. If I may offer some constructive criticism (is that what you're looking for?):
  • What if there is a program that doesn't work with your system? How would it appear in the city?
  • It sounds complicated. What happens when the "coolness" wears off and the user just wants to run a gosh-darned program without wandering through a city and waiting for all the fancy graphics to load?
It reminds me of some online game thing (I can't remember the name) where the different games were divided into "lands" and "cities" based on their genre.

EDIT: I remember now: it's kinda like ImagiNation Network. See this: http://www.youtube.com/watch?v=O-RvRfmTidk&NR=1

Re: 3D GUI idea

Posted: Thu Aug 06, 2009 12:46 am
by JohnnyTheDon
manonthemoon wrote: It reminds me of some online game thing (I can't remember the name) where the different games were divided into "lands" and "cities" based on their genre.
Second Life maybe?

Providing interesting and entertaining metaphors for otherwise mundane tasks is a great idea. I think we are finally reaching the point where the virtual realities expressed in books like Snow Crash and the Net Force series are becoming almost feasible. As far as productivity is concerned, I won't be writing code in it, but moving down a virtual street to a movie theater when I want to watch a DVD would be awesome. It would be even more fun if there was a mod that placed an evil ninja army bent on killing me all over the streets.

The next step is, of course, a virtual reality getup that lets you actually walk in the city :)

Re: 3D GUI idea

Posted: Thu Aug 06, 2009 12:58 am
by whowhatwhere
JohnnyTheDon wrote:
manonthemoon wrote: It reminds me of some online game thing (I can't remember the name) where the different games were divided into "lands" and "cities" based on their genre.
Second Life maybe?

Providing interesting and entertaining metaphors for otherwise mundane tasks is a great idea. I think we are finally reaching the point where the virtual realities expressed in books like Snow Crash and the Net Force series are becoming almost feasible. As far as productivity is concerned, I won't be writing code in it, but moving down a virtual street to a movie theater when I want to watch a DVD would be awesome. It would be even more fun if there was a mod that placed an evil ninja army bent on killing me all over the streets.

The next step is, of course, a virtual reality getup that lets you actually walk in the city :)

Or, better yet, one could actually get up and go visit the theatre with real people. 8)

Re: 3D GUI idea

Posted: Thu Aug 06, 2009 1:23 am
by JohnnyTheDon
syntropy wrote:
JohnnyTheDon wrote:
manonthemoon wrote: It reminds me of some online game thing (I can't remember the name) where the different games were divided into "lands" and "cities" based on their genre.
Second Life maybe?

Providing interesting and entertaining metaphors for otherwise mundane tasks is a great idea. I think we are finally reaching the point where the virtual realities expressed in books like Snow Crash and the Net Force series are becoming almost feasible. As far as productivity is concerned, I won't be writing code in it, but moving down a virtual street to a movie theater when I want to watch a DVD would be awesome. It would be even more fun if there was a mod that placed an evil ninja army bent on killing me all over the streets.

The next step is, of course, a virtual reality getup that lets you actually walk in the city :)

Or, better yet, one could actually get up and go visit the theatre with real people. 8)
That sounds dangerous :shock:

Re: 3D GUI idea

Posted: Thu Aug 06, 2009 1:32 am
by pcmattman
I have a concept for a 3D GUI.
I love it. I'd love to see a small prototype, just to play with the idea.

I just have one small thing I have to ask: What about those of us who listen to music while we're doing things? I can't just pick up the theatre and take it everywhere in my pocket :)

EDIT:
You'd also need at least one building representing a package manager in the city so you can install/uninstall other programs.
Ala the Citadel in the HL2 games (I guess that'd be a HL2 "theme")... That'd be awesome.

Re: 3D GUI idea

Posted: Thu Aug 06, 2009 10:43 am
by xDDunce
This sounds great. I can see this looking a lot like the internet in Futurama.... green matrix-ish setup and the laser tag game and everything....

If anyone ever gets started on making something like this, I would love to help out!

Cheers,
James.

Re: 3D GUI idea

Posted: Thu Aug 06, 2009 11:19 am
by Troy Martin
pcmattman wrote:Ala the Citadel in the HL2 games (I guess that'd be a HL2 "theme")... That'd be awesome.
And when you start selecting generally disallowed packages (such as non-free ones on linux) it starts forming into the Citadel as it is at the end of HL2E1 with all the swirling crap above it and the transmission flying up and out through the rift in the sky :)

Re: 3D GUI idea

Posted: Thu Aug 06, 2009 1:32 pm
by Brynet-Inc
How delightfully original.. let's make a 3D single-tasking graphical user environment.. oh wait.

We all know it's a secondary hobby of yours.. but no matter how you disguise it, a video game will always be a video game.

Next brilliant idea in 3.. 2.. 1.

Re: 3D GUI idea

Posted: Sun Aug 30, 2009 6:10 pm
by linuxfood
Hmm....

Kinda like in Jurassic Park?

http://www.dailymotion.com/video/x4tbis ... scene_tech

Seriously, that's the first thing I thought of when I started reading.

Classic. "It's a UNIX system! I know this!".

EDIT: Fixed my misquote.

Re: 3D GUI idea

Posted: Sun Aug 30, 2009 6:14 pm
by pcmattman
"I know this, it's UNIX!".
FSN.

Re: 3D GUI idea

Posted: Sun Aug 30, 2009 6:36 pm
by linuxfood
@pcmattman: I've even played with the open source version. Jurassic park was still the first thing that came to mind, though.

EDIT: Edit fail.

Re: 3D GUI idea

Posted: Sun Aug 30, 2009 6:40 pm
by pcmattman
What I mean is, that quote is often used in contexts which point out the fact that Hollywood has no idea what they're talking about, when in fact the software used does run on a UNIX system, AFAICT :)

Re: 3D GUI idea

Posted: Tue Sep 01, 2009 6:55 pm
by ClarionCoder51
It kinda sounds like a 3D remake of Microsoft BOB. I love it!!

Re: 3D GUI idea

Posted: Tue Sep 01, 2009 8:12 pm
by ~
It should be perfectly possible to write a GUI manager using DirectX/OpenGL, programming all of the window handling functions and renderings, and make programs designed to use it.

Also, if there was some way to still allow normal programs to be handled through the default window manager, and have them draw their windows in a back buffer and still being able to handle the standard controls of that application having the DirectX GUI respond to the windows' requests, then it could be done.

Or making the normal programs and the Windows GUI allow the DirectX GUI to work as an intermediate layer, so that normal programs are drawn in back buffer, the DX GUI gets told, then there are events, and the DX GUI gets told, and then this DX GUI be capable of having the messages properly dispatched, not just being able to present the normal GUI but also still provide its graphical functionality.