Opencroquet
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."
Summary
.
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.
summary.html
teapot.jpeg
Croquet0.1.pdf
I grabbed the summary text and screenshot as well as the Croquet user manual in anticipation of /. effect.
Thank MrHOSTBOT 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.
I hope he had good birthing hips... that sounds uncomfortable.
"It takes considerable knowledge just to realize the extent of your own ignorance." - Thomas Sowell
a pdf containing all information inclusive screenshots
Here's the screenshot
It's not too spectacular, if you ask me.
DNA is the ultimate spaghetti code.
"Way cool screenshot."
That sort of link is red rag to a bull...
Slashdotted already...
Ceci n'est pas une
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.<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
The emacs religion: to be saved, control excess.
It's cool to see Smalltalk getting noticed, but the misconceptions continue to run amok. Smalltalk is not typically interpreted - like Java, it's a JIT'ed language. The major commercial versions all use a JIT, and there's an experimental one for Squeak around - check the Squeak home page at http://www.squeak.org If you are curious about the commercial implementations - all of which have free downloads - check out this site: http://www.whysmalltalk.com
Talk Small and Carry a Big Class Library
While I've never used a 3D GUI (other than Quake), the problem I perceive from the outside looking in (so to speak) is that a 15 inch, 19 inch, or even 24 inch computer monitor is an awfully narrow window through which to view the world. My eyes can flit about the physical 3D space of my office quite quickly, but if the virtual 3D space I want to view is larger than my screen, I can't move my eyes beyond the screen edge without using my hands.
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.
What do you mean they cut the power? How can they cut the power, man? They're animals!
I think not. Compiling would mitigate the whole point. The idea is that it's a perfect virtual machine, with exactly the same code for every system, plus a tiny little bit of specific OS code in C at the very bottom. Squeak's available for so many platforms because it takes this approach. Anybody can knock out a new version in no time, while with something with Java, a new version is a major undertaking and is sure to come with its own unique bugs. Besides, Squeak is actually surprisingly fast for a true OO, VM-based system. It can even handle movie-playing and some 3D stuff with surprisingly good speed. Yay VMs!
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).
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.
Like woodworking? Build your own picture frames.
Flash as navigation? It allows you to completely destroy the usability of the site. Middle click to open in a new window? Gone. Right click to select "open in new tab"? Gone. Tab through links? Gone (or possibly there if somebody using flash has a clue, unlikely). Typeahead finding a link? Gone.
The reason people like flash for things like navigation is because they want to reimplement the interface. This is almost certainly a terrible idea from the perspective of most websites, and for most users.
It is also not supported by any search engines, so good luck having your site indexed (unless you provide a fallback, most flash developers don't even know how to do this).
Control is a four-letter word in the mouth of a web author. I don't want you to control my interface. I want to view your site how I wish. All the w3c technologies allow this, why can't flash?
I think you mean <link rel="stylesheet" ...>
Great. But basic navigation through a normal website isn't an application. Even if it was, I'd expect it to work like all my other applications.
Yes and no. Squeak itself is an operating system which is usually hosted on another OS, like Unix or Windows. However, it is possible for it to run on the bare metal, and there has been some work towards that end. You can even write new hardware drivers in Smalltalk. This is x86 only so far- most people are content to run it ontop of another OS for now, so there hasn't been a huge push towards getting rid of the inferior host OSes quite yet.
Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
A correction to the original post:
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.
Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
I don't think we decided anything. This is a research project. Developing something new is always good (and I get the impression there's more to it than just a 3D window manager). Even if what you develop is rubbish, at least we learn what path not to follow. Hypothetically, focusing everybody's effort on refining one idea to perfection will result in improvement in the short term for that one idea, but it would be a tremendous waste of creativity.
If I seem short sighted, it is because I stand on the shoulders of midgets
I don't have flash, I cant'navigate.
The fact is you can travel NOW with a Ford T in any street.
I'm from Argentina: Tango, Asado, Mate, Gaucho, Maradona, YPF
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 (pronounced "fusion") produces a cyberspace rendering of a file system. This was the original 3D file system navigator shown in Jurassic Park ("Hey, this is UNIX. I know this!").
[Screenshot] | [Download] (IRIX)
- FSV 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] | [Download] (Linux)
- Xcruise 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] | [Download] (Linux)
- TDFSB is a 3D filesystem browser for Linux. Take a walk through your filesystem!
[Screenshot] | [Download] (Linux)
- Visual File System 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] | [Download] (Windows)
- 3Dtop 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] | [Download] (Windows)
- ROOMS 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] | [Download] (Windows)
- CubicEye 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] | [Download] (Windows)
- Vizible WorldViewer 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]
A lot of people are extrapolating from the statement about speed sans a 3D accelerator that Squeak itself is slow. Not the case. Squeak isn't interpreted, it's bytecode compiled, and the VM is quite well done. I regularily run Squeak on machines which, by today's standards are pretty slow- 75 MHz MIPS, 206 MHz StrongARM, and a 350 MHz K6-2. To me, these machines are still pretty fast and useful, Squeak making them even more so.
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.
Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
...realtime ratracer on the taskbar reflecting the desktop
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!
I browse Slashdot at +3, Funny
First poster says Smalltalk is no longer slow and that Java is "dangerous", but fairly recent testing showed the truth:
Math: 20x-300x slower than C or Java.
Method calls: 5x slower.
Overall overhead from OO is at least 10x for Smalltalk over C++ (there are a LOT more messages/method calls and almost none are inlined). Also since everything is a 'live' object when people screw up their desktop they have to do the moral equivalent of reinstalling the OS.
why are people so opposed to Flash on the net?
Ask the blind.
Where does the school board find them and why do they keep sending them to ME?
"... until a better license is written, Croquet is
covered under the current Squeak license."
- Team Croquet
The license allows for modification and redistribution, but has some quirky clauses in it because of it's lineage as proprietary software that owned by Apple.
It's worth noting, that the Smalltalk community since the beginning has always exposed all of it's source and allowed and encouraged users to modify the code and expand the code base. This goes back long before the open software/free software movements took root.
---
"There's no reason that the basest part of an operating system has to be a command line"
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.
How are you going to keep them down on the farm once they've seen Karl Hungus?
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'.
I am TheRaven on Soylent News