Slashdot Log In
Opencroquet
Posted by
michael
on Wed Mar 12, 2003 09:01 AM
from the thwock-thwock dept.
from the thwock-thwock dept.
zymano writes "OSnews has some information about Opencroquet, a 3d operating system worked on by Alan Kay, who also is one of the inventors of Smalltalk, one of the fathers of object oriented programming, conceiver of the laptop computer, inventor of much of the modern windowing GUI. The OS is a 3D environment running through the Squeak environment on top of another operating system. It requires a supported 3D accelerator. Squeak is an interpreted language similar to Smalltalk. Could be ssslooooww. Way cool screenshot."
This discussion has been archived.
No new comments can be posted.
Opencroquet
|
Log In/Create an Account
| Top
| 380 comments
(Spill at 50!) | Index Only
| Search Discussion
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
(1)
|
2
(1)
|
2
Assuming it unusable quite soon... (Score:5, Informative)
(Last Journal: Monday January 17 2005, @09:36AM)
Croquet had the working name of Tea until recently. You will see many references to Tea in the system, in the code, and even in this document. Just
assume that when you see Tea, we mean Croquet.
Croquet was built to answer a simple question. If we were to create a new operating system and user interface knowing what we know today, how far
could we go. What kinds of decisions would we make that we might have been unable to even consider 20 or 30 years ago, when the current set of
operating systems were first created.
The landscape of possibilities has evolved tremendously in the last few years. Without a doubt, we can consider Moore's law and the Internet as the two
primary forces that are colliding like tectonic plates to create an enormous mountain range of possibilities. Since every existing OS was created when the
world around it was still quite flat, they were not designed to truly take advantage of the heights that we are now able to scale.
What is perhaps most remarkable about this particular question is that in answering it, we find that we are revisiting much of the work that was done in
the early sixties and seventies that ultimately led to the current successful architectures. One could say that that in reality, this question was asked long
ago, and the strength of the answer has successfully carried us for a quarter century. On the other hand, the current environments are really just the thin
veneer over what even long ago were seriously outmoded approaches to development and design. Most of the really good fundamental ideas that people
had were left on the cutting room floor.
That isn't to say that they thought of everything either. A great deal has happened in the last few decades that allows for some fundamentally new
approaches that could not have been considered at the time.
We are making a number of assumptions:
Hardware is fast - really fast, but other than for booting Windows or playing Quake no one cares - nor can they really use it. We want to take advantage
of this power curve to enable a richer experience.
3D Graphics hardware is really, really fast and getting much faster. This is great for games, but we would like to unlock the potential of this technology to
enhance the entire user experience.
Late bound languages have experienced a renaissance in both functionality and performance. Extreme late-bound systems like LISP and Smalltalk have
often been criticized as being too slow for many applications, especially those with stringent real-time demands. This is simply no longer the case, and as
Croquet demonstrates, world-class performance is quite achievable on these platforms.
Communication has become a central part of the computing experience, but it is still done through the narrowest of pipes, via email or letting someone
know that they have just been converted into chunks in Quake. We want to create a true collaboration environment, where the computer is not just a
world unto itself, but a meeting place for many people where ideas can be expressed, explored, and transferred.
Code is just another media type, and should be just as portable between systems. Late binding and component architectures allow for a valuable
encapsulation of behaviors that can be dynamically shared and exchanged.
The system should act as a virtual machine on top of any platform. We are not creating just another application that runs on top of Windows, or the
Macintosh - we are creating a Croquet Machine that is highly portable and happens to run bit-identical on Windows, Macintosh, Linux, and ultimately on
its own hardware... anywhere we have a CPU and a graphics processor. Once the virtual machine has been ported, everything else follows; even the
bugs are the same. Most attempts at true multiplatform systems have turned out to be dangerous approximations (cf. Java) rather than the bit-identical
"mathematically guaranteed" ports that are required.
There are no boundaries in the system. We are creating an environment where anything can be created; everything can be modified, all in the 3D world.
There is no separate development environment, no user environment. It is all be the same thing. We can even change and author the worlds in
collaboration with others inside them while they are operating
The existing operating systems are like the castles that were owned by their respective Lords in the Middle Ages. They were the centers of power, a way
to control the population and threaten the competition. Sometimes, a particular Lord would become overpowering, and he would get to declare himself as
King. This was great for the King. And not to bad for the rest of the nobles, but in the end - technology progressed and people started blowing holes in
the sides of the castles. The castles were abandoned. Technology does this.
Mirror (Score:5, Informative)
summary.html [mrhostbot.com]
teapot.jpeg [mrhostbot.com]
Croquet0.1.pdf [mrhostbot.com]
I grabbed the summary text and screenshot as well as the Croquet user manual in anticipation of /. effect.
Thank MrHOSTBOT [mrhostbot.com] for the free bandwidth.
Oh, and people seemed to be labeled "karma whore" just because they post useful (mirror) links, so I guess I'll stick to A.C. in order to please the masses.
Re:Mirror (Score:4, Funny)
Damn elitists!
Re:Mirror (Score:5, Funny)
(http://www.quityourjobday.com/)
Re:I can see how this will become. (Score:5, Funny)
You kids have it easy, back in my day we called them "mice" and we moved them across mousepads that were uphill in all directions!
ouch.... (Score:5, Funny)
(Last Journal: Saturday March 17 2007, @08:48AM)
I hope he had good birthing hips... that sounds uncomfortable.
Re:prototype? (Score:5, Informative)
Re:prototype? (Score:5, Informative)
(http://slashdot.org/none)
Squeak isn't an interpreted language like Perl or Basic (usually) is. Squeak is compiled, but to bytecode. The bytecode is then JIT-compiled or interpreted. Never is the code itself interpreted.
Re:How can an OS be 3D? (Score:5, Insightful)
(Last Journal: Friday July 18 2003, @02:55PM)
Um, the command line is a shell. The shell is not the OS, it is a user interface. You know, the "UI" in "GUI."
An operating system has no concept of 2d, 3d, whatever. There is no direct interaction between human and OS. The human interacts with the UI, the UI interacts with the OS, the OS interacts with the hardware. The OS is not a visual thing.
Heres the really intresting stuff (Score:5, Informative)
(http://www.mjoelkbar.net/ | Last Journal: Wednesday April 20 2005, @09:29AM)
Way Cool Screenshot (Score:3, Insightful)
(Last Journal: Thursday October 25, @03:12PM)
Hmm, the main link was slashdotted, so I tried the OS's website http://www.opencroquet.org [opencroquet.org]. Maybe they should change their main graphic to the "Way Cool screenshot" rather than the Monet looking Croquet game they have going on right now. They might garner a bit more interest.
mirror of screenshot (Score:3, Informative)
(http://www.vandenoever.info/)
It's not too spectacular, if you ask me.
Re:mirror of screenshot (Score:5, Interesting)
(http://www.artofliving.org/contacts.asp)
They even implement the same bad dialogs as in Windows. Notice in the Connect-form, the http:// link is neither wrapped, nor does it elongate the dialog box.
I find it amazing that nobody fixes such stupid GUI things and makes a truly generic GUI.
Re:mirror of screenshot (Score:4, Interesting)
(http://www.cs.mcgill.ca/~mghase)
bring in some real artists to work on this and you can do some really nice stuff. think the UI's you saw in the final fantasy movie or minority report.
-Mani
Wicket. (Score:3, Funny)
(http://www.timeiq.com/)
And what happens if two Croquet machines have packet collisions? Which one gets to make the croquet shot?
-S
I want to see it... (Score:3, Funny)
(http://slashdot.org/)
"Way cool screenshot."
That sort of link is red rag to a bull...
Slashdotted already...
it's a stretch (Score:3, Insightful)
(http://www.30doradus.org/ | Last Journal: Wednesday September 25 2002, @12:31AM)
OK, I didn't RTFA, but...if it runs on top of another OS, it can't really be called an OS itself, can it? I mean, win95 jokes aside, isn't it just a fancy GUI then?
Re:it's a stretch (Score:4, Informative)
(http://slashdot.org/none)
Re:it's a stretch (Score:4, Funny)
(http://theravensnest.org/ | Last Journal: Tuesday November 27, @07:07AM)
No, the usual term for a program which runs on top of an OS but still seems to want to implement all the features of an Os is 'emacs'.
Re:3D OS (Score:5, Insightful)
Does anyone else get the feeling (Score:4, Insightful)
(http://arvindn.livejournal.com/ | Last Journal: Monday June 16 2003, @12:39AM)
Like smalltalk. Early 70s, IIRC. The problem of managing increasing software complexity, which object orientation (partly) solved, became significant only much later.
I don't think 3d enviromnents are an idea whose time has come. Slowness is only part of the problem. We really don't have the software infrastructure to scale UI complexity to those levels. Maybe for special applications, but not as a general UI design paradigm.
Certainly futuristic.Re:Does anyone else get the feeling (Score:4, Insightful)
(http://www.ajs.com/~ajs/)
There are a lot of folks who will arm-wave at the idea of 3D UIs. I've yet to see a 3D UI that a) renders on current 2D screens and b) provides any significant advantage over the 2D concepts of window-stacking, iconification, virtual screens and alpha-channel blending.
Some of these concepts are still in the "time to market" stage (e.g. alpha-channel blending), but given their application, the idea of tracking UI objects in three dimensions (which increases memory usage) isn't really going to buy you much.
Take a look at the screen-shots. Squint. Try to convince yourself that you're looking at a rendered background with several overlapping windows. Now ask yourself: do the addition of perspective and a z-axis for window movement improve the situation, or just add complexity?
Smalltalk misconceptions (Score:5, Informative)
(http://www.cincomsmalltalk.com/blog/blogView)
Real Estate (Score:5, Interesting)
(http://slashdot.org/)
Until this problem is overcome, either with giant screens, head-mounted displays, or some bizarre gesture-controlled scrolling (like head tilts), I can't see 3D GUIs becoming more than a curiosity because they consume too much 2D screen space without giving enough virtual space back.
not slow (Score:5, Informative)
But raw execution speed isn't all that counts. Because Squeak has everything in one address space (unlike Gnome/KDE) and doesn't need to load anything on the fly (unlike Java), it's actually very responsive and uses comparatively little memory.
I don't think Squeak or anything based on it is going to replace mainstream desktops now or in the future. But it is an interesting platform for experimentation. It's also historically interesting because you can see the kinds of environments people already had available in 1980 (Smalltalk-80 is contained in Squeak).
Re:not slow (Score:5, Insightful)
(http://slashdot.org/)
Better in what way? I'm not trying to be argumentative. For all I know, the Squeak VM allows a 486 DX2 at 66 MHz to pump out 3 teraflops on .2 watts and has been shown to cure cancer in lab rats.
"Better" really doesn't say much. You might as well have made up a word or posted in Linear B.
Are you talking about inherent superiority of the VM spec? Is the design simpler? Is the set of opcodes smaller or more orthogonal without sacrificing speed or functionality? Has it supported non-blocking I/O, continuances, higher order functions, and generics/templates from day 1? (Can you tell I'm a Java programmer that hated not getting java.nio.* until Java 1.4? Now for generics and continuances...) Did Dijkstra, Turing, Ken Thompson, Xavier Leroy, Ross Andersen and Linus spend a year in seclusion atop Mount Araraat inside Noah's Ark designing a VM spec that was pretty-printed by the hand of God Almighty on the one remaining wall of Solomon's temple? Is the set of opcodes inherently faster or does it result in more compact binaries? Is the set of opcodes well chosen to be easily implemented on most architectures? Is the size of an int clearly defined in the spec (as I remember, both Perl and Python say "at least 32 bits", which is a horrible spec if you want your code to run the same across architectures)? Does the set of opcodes lend itself to rapid compilation of efficient bytecode from many source language families? Are the bytecode operations and file formats well suited to JITs? Does the VM design not force a single object model on the code? Does the opcode format offer security benefits such as efficient real-time security checks on untrusted code? Are there other ways in which the design is "cleaner", "leaner", or "more efficient".
Are you refering to the design of the curent VM implementation rather than the spec itself? Is the current VM better documented in both English and Tamil? How about clean interfaces or easy extensibility of the VM?
Are you talking about the implementation of the current bytecode engine? Is the source code for the VM well commented in Englsih and Thai? Is the entire VM and libraary set implememted in 5,000 lines of Objective C? Is the current VM available in C, Java, Scheme, Haskel, and Intercal implementations?
I suspect you mostly meant "the current canonical implementation is very fast". The speed of the current VM is much less important than inherent design limitations. If the current VM is 50% as fast as the fastest Perl VM, but is expected to be 25% faster than the fastest JVM in a year, that's much preferable to a 10% speed lead on Perl right now. If you change your VM spec too much or too often, people start jumping ship, but you could completely gut your VM every 2 years and very few people would take notice. You're stuck with your design.
I'd love to hear an analysis of the Squeak VM. I hear about so many well designed VMs that get little mind share while the unwashed masses rave about CLR/Mono without giving good details about why the CLR is inherently cross-language and high performance.
Re:Where's the beef? (Score:4, Informative)
Other 3D UIs: references and links. (Score:5, Informative)
(http://ned.baldessin.fr/)
Ripped straight off the side bar :
Will 3D user interfaces ever take off? With ever-growing 3D processing capabilities available on standard PC hardware, it seems only natural to pursue UI directions that take advantage of this awesome power. Moreover, the generation of users now emerging has had access to video games for as long as they could remember. As the line between video games and PCs becomes blurrier, the time may have come to think about how to apply 3D visualization techniques for more day-to-day computing tasks.
Here are links to some of the 3DUIs that are available today:
- FSN [sgi.com] (pronounced "fusion") produces a cyberspace rendering of a file system. This was the original 3D file system navigator shown in Jurassic Park [monash.edu.au] ("Hey, this is UNIX. I know this!").
[Screenshot [monash.edu.au]] | [Download [sgi.com]] (IRIX)
- FSV [sourceforge.net] is modelled after FSN, but runs on Linux. FSV lays out files and directories in 3D, geometrically representing the file system hierarchy to allow visual overview and analysis.
[Screenshot [sourceforge.net]] | [Download [tucows.com]] (Linux)
- Xcruise [nooface.com] lets you fly through a filesystem in 3D as if it were interplanetary space. Directories are represented as galaxies, files are represented as planets (whose mass is determined by the file size), and symbolic links are represented as wormholes.
[Screenshot [titech.ac.jp]] | [Download [unixuser.org]] (Linux)
- TDFSB [hgb-leipzig.de] is a 3D filesystem browser for Linux. Take a walk through your filesystem!
[Screenshot [hgb-leipzig.de]] | [Download [hgb-leipzig.de]] (Linux)
- Visual File System [nooface.com] is a 3D file system visualizer for Windows. The tool scans a drive selected by the user, and then models the contents of the drive in 3D, based on the directories that are selected in a tree browser on the side of the display.
[Screenshot [manann.tng.de]] | [Download [manann.tng.de]] (Windows)
- 3Dtop [nooface.com] is an extension for Windows that represents desktop icons in 3D, letting you to fly around your desktop. You can create coloured spotlights, background and floor textures, "paintings" (bitmaps), clocks, and "flags" that represent shortcuts.
[Screenshot [3dtop.com]] | [Download [3dtop.com]] (Windows)
- ROOMS [nooface.com] turns a Windows desktop into a 3D world. You can see the world either through a first person perspective or with a map view, and you can populate the world with sounds, animated images, and 3D icons.
[Screenshot [rooms3d.com]] | [Download [rooms3d.com]] (Windows)
- CubicEye [2ce.com] organizes windows into a navigable cube. Cubes can be arranged by thematic or functional subject matter, and can be explored either individually or collectively as part of a more comprehensive structure of multiple cubes representing various areas of interest.
[Screenshot [2ce.com]] | [Download [2ce.com]] (Windows)
- Vizible WorldViewer [vizible.com] distributes windows across the exterior and interior surfaces of spheres, providing the means to visualize and navigate large numbers of web pages and data sources simultaneously.
[Screenshot [vizible.com]]
Squeak itself not slow (Score:5, Informative)
(http://slashdot.org/none)
Squeak has two different GUI systems which you can use- Morphic and MVC. MVC is the "original WIMP," the first ever GUI system. It has deviated a bit from what came out of Xerox almost 30 years ago, but it has the same API and most of the same source code. It has Mac-like window decorations instead of the BeOS-like tabs now a days. MVC is a lot faster than Morphic for a number of reasons. It is what I will use on the slowest of the machines I use for Squeak (75 MHz). A number of GUI APIs have been modeled after MVC over the years, including Swing (MVC is much faster, don't get me wrong!) and Cocoa AppKit.
Morphic is what most folks use when they are running Squeak. It has a really cool programming model- applications can be built programmatically, with a GUI builder, or by directly manipulating the Morphs (graphical objects). A common example is the Rolodex- you can make on in Squeak without writing a line of code, just drag some Morphs around, make a few menu decisions, and there you go.
Morphic is slower than MVC, but you get what you pay for (computationally!). It is still quite usably fast on a 350 MHz K6-2 (~300 MHz PII), however.
I have not tried Croquet yet. There has been a lot of talk on the Squeak list about it, but in all honesty, 3D worlds aren't really my thing. People have been talking about the 90 MB download- most of that is media. A standard Squeak download is around 10-15 MB for the latest version, including a lot of useful classes and applications. Out-of-box memory footprint is 20 MB or so, but if you trim what you don't need, you can easily end up with a 1-3 MB image and a 2-4 MB memory footprint. This ain't Java, folks.
I am a bit of an oddity, even within the Squeak community. I use Squeak *as* my OS, my computing environment. One could think of it rather like Emacs- a lot of applications [1] are written for it, and it is readily modifiable, so that the environment works like you want it to. Don't like the way Squeak manages windows? Make a couple small changes to a few small methods. I was once a Linux user trying to do just this to my environment, making tweaks to the WM, and it was way more work than it should be. You can imagine how excited I was when I came across Squeak- the entire system is written in Smalltalk, making changes pretty easy, no matter what part of the system they affect.
[1] There are a number of applications written in Squeak. Most new apps are written for Morphic (rather than the older MVC). These apps include: two different forms of handwriting/gesture recognition, a simple web browser, a pretty good email client (although POP only), a couple IRC clients, a bunch of games, an vt100 terminal for use as an xterm or telnet client, all of the programming tools for writing Smalltalk, and more.
Information Overload (Score:3, Informative)
(http://www.polsci.wv...ecream/icecream.html)
I recall reading or seeing on TV once interviews with fighter jet pilots from the Korean War, and they were complaning to the engineers that there were too many audio alerts that were distracting them from doing their job, and could they put an off switch somewhere for those alerts?
I can see the same thing with the interface- how much data do we need to bombard ourselves with? The human mind can only subdivid our attention to so many tasks at once (I think the limit is 4 or 5).
I certainly can see places where moving into the 3rd dimention would help, but I see those as specialized tasks, not writing a letter or reading email.
OSX? (Score:3, Interesting)
(http://www.last.fm/user/schmod)
I wonder if we could see usability improvements by using 3d toolbars stacked on top of each other using alpha blending which could be moved by mouse gestures... very cool... Unfortunately, most of the 3d GUIs to date have only decreased usability, and been overly cumbersome.
Bah.... (Score:3, Funny)
-Carter
Re:Flash? (Score:3, Insightful)
(Last Journal: Wednesday March 12 2003, @01:31PM)
<table>
spacer row...
content...
spacer...
Flash is not crap. Just most people using it relegate it to stupid intro movies. It allows the developer to create a completely self contained application, free of the shackles of the HTML dinosaur.
psxndc
Re:Flash? (Score:3, Insightful)
(http://kombat.org/)
why are people so opposed to Flash on the net? Are they equally resentful that images have "invaded" their text-only HTML world? My website uses tables ... how evil am *I*?
I mean, if you have a legitimate complaint (crashes your browser) or something, then that's fine, but I'm getting a little sick of people who consistently respond with knee-jerk negativity against anything remotely commercial, regardless of how useful and innovative it may be.
It's 2003. You don't still drive 30 mph in a '55 Chevy, why would you be so resistent to modern browser plugins?
Anyway, personally I'm glad that OS research is finally turning to the 3D realm. It only seems like the next natural progression in computer environments.
Re:Flash? (Score:5, Insightful)
(http://slashdot.org/ | Last Journal: Friday January 09 2004, @09:13AM)
I don't have flash, I cant'navigate.
The fact is you can travel NOW with a Ford T in any street.
Re:Flash? (Score:5, Insightful)
(http://www.chemicalwonderland.net/ | Last Journal: Monday September 03, @10:34PM)
Ask the blind.
What we have here ... (Score:3, Interesting)
(Last Journal: Saturday October 01 2005, @10:40AM)
Hmmm - I made a new emoticon
Anyways, if I had to vote (and no, they didn't call me to ask my opinion) I would vote to have my actual processes run faster and my UI be uglier, than to have a virtual C.Zeta Jones walking around on the other side of the glass bringing me the files I requested, drop one halfway back from the 'library' and bend over at the waist to pick it up, then lean over when handing them to me to give a good look down her blouse.
Hmmm. Scratch that. How about we get to pick at boot time : CUI interface when we need raw computational power, and the Metaverse / Library UI when we are doing regular work. Maybe be able to start the GUI processing by typing StartX at the command line
Pretty cool idea, combines most of the important things that have been the driving forces behind generations of advancements in software / hardware