Interesting project! I'll base my comments (inline, below) on what
is in the public code repository -- available now to developers
(http://hedgehog.software.umn.edu:8888/), and undergoing testing for
inclusion in a pre-loaded image for the next distribution.
These are my opinions. I don't speak for anyone (regardless of
On Jan 10, 2007, at 3:35 AM, Hussayn Dabbous wrote:
> Hi, all;
> I am brand new to VR in general and to Croquet in special, although
> i am a programmer
> having about 30 years of experience with all sorts of software
> development starting with
> microcomputer programming in the midth of the 70's and ending up
> running a small software
> development company specialised on webapplication technology.
> So recently i took a brief look into some VR technologies,
> especially second life has
> attracted me in first place which IMHO is very impressive namely
> its look and feel. That's
> nice for leisure, but i am not quite convinced regarding second
> life as a platform for
> serious working in the first world ;-).
> So i turned to Croquet and found its key technology much more
> interesting especially
> because i am interested in a concrete scenario, where i want to
> make the interaction
> between our software development and our customers more efficient.
> And i believe, Croquet
> could do something for us here in a much better way than other
> solutions can do. But as
> a newbie in this field i am unsure whether i am really going the
> right way. Hence i took
> some time to bring my beginner's ideas to this email hoping to get
> some brief answers.
> So here we go: I think about a virtual issue tracking system
> involving direct virtual
> interaction between customer and developers. I'd like to verify
> whether the following
> use case can already be implemented with todays Croquet
> The use case
> We are currently using a web based issue tracking system (namely
> Scarab, maybe you have
> heard about it ?) for communication between our development and our
> customers. Very often
> text based issues are not expressive enough to understand the
> problem. Hence we need to
> get to the phone and let us explain in lengthy words what the
> customer problems are all
> about. Often we need to place ourselves in front of the Browser and
> try to reproduce
> described effects on the customer system. We have a connection via
> VPN and thus can get
> into the customers computer system for maintenance purpose. This
> scenario has prooven
> efficient regarding to the main stream tools as available today
> (browser, webapplications,
> telecomunications, vpn, ...), but i like to push this (much) further:
> 1.) I want to create two virtual worlds, i.e. two rooms in Croquet:
> - development lab where a customer can take a look into our
> ongoing work, e.g.
> play around with our development system (a webapplication).
> This playing may be
> acompanied by a developer, who shall comunicate how to use
> the frontend by
> using his developer avatar, while the customer avatar may
> listen e.g. via voip
> The customer may also utilise our testsystem either directly
> from the web, or
> through a viewport from Croquet.
> The development lab shall physically run on one of our
> company servers.
> - customer lab where a customer offers a direct view to his
> production and
> test systems. The main functionalities are technically more
> or less equivalent
> to what we want to offer in the development lab above.
> The devleopment lab shall run on one of the customers
> 2.) The development lab and the customer lab shall be connected via
> a portal, thus
> customers and developers can enter both rooms whenever needed
> and start a comunication
> with others when online.
> 3.) a user (developer or customer) can leave a message to another
> user at any place. This
> message shall be physically organised in our issue tracking
> system, which is also web based
> and allows to enter issue related comments, upload/download
> any files.
> 4.) through the customer lab we shall get direct access to e.g. a
> terminal window from where
> we can start a terminal session either directly in Croquet or
> on an external window which
> runs a terminal software (e.g. putty)
> Some questions
> The above scenario is just a rough sketch about what i have
> currently in mind. One of the
> crucial points is about acceptance of such a system. So here are my
> essential questions:
> 0.) Does it make sense in first place ?
Yes. The complete scenario could be prototyped entirely in the "KAT
demo" in the Software Developer's Kit, from within the system as you
are using it, without any programming at all. A closed, proprietary,
specialized, branded, and tuned application could then be built using
the SDK, and delivered as you see fit.
> 1.) Is it possible to create a custom croquet containing our own
> avatars instead of the
> original ones coming with the Croquet sdk ?
Yes. Even as they exist now, several of the demos, including the KAT,
provide the ability to change avatars.
+ Some of the demos (including KAT), provide the ability to load
arbitrary .ase format models (programatically or interactively).
+ There is code in the repository (that I have not used myself), that
also loads arbitrary .vrml format models.
+ Previous internal versions of what has become the KAT demo allowed
you to interactively select anything in the world any "wear" it as
- Two of the demos, Sailing and Simple Demo, allow you to
interactively load an articulated Poser avatar such as those used in
Second Life, and assign specific motions to it for walking, standing,
> Can we also remove the demo worlds and
> just keep a template for the customer-room? Such that we can
> let our customer
> download the Croquet viewer, start it and get right to where
> we want him to go
> without learning anything about croquet, just jumping in and
> start with the intended
> application ?
Yes. You can program your application to connect to any world you like.
The "Croquet viewer" as you call it, is actually a complete and quite
malleable development and delivery environment called Squeak. You can
interactively define whatever applications, buttons, controls,
instructions, etc. that you like, save it, and ship the result.
I think it is instructive to see how you could interactively create a
complete concept-to-delivery prototype for your scenario. Using the
SDK (either the pending version or the currently available one after
updating by you from the repository),
1. Start the KAT demo. When prompted for a place to connect to, do
not connect to any public commons (which is not available yet, prior
to the release). Instead, just enter a blank address. The demo will
just run locally on your machine.
2. The world your machine will build is mostly empty except for some
portals. Most of these are to empty worlds. One is the standard demo
world. Delete the portals you don't want. Interactively add and
arrange the stuff you do want.
3. Cache the current version of all the worlds onto your disk, using
the 'Admin' menu.
4. Distribute your version of the SKD. You do not need to distribute
5. To run in "production," start your copy as in steps 1 and 2. It
will load your worlds from your cache. Leave that machine running.
6. Tell everyone else to start as in 1, but for step 2, give them the
address of the machine you use in step 5.
There are engineering issues, of course, but these are the essentials.
> 2.) Is it possible to efficiently connect Croquet viewing portals
> with a Webapplication
> running in the same domain as Croquet runs in ?
I'm getting this question confused with 3 and 7, below. Can you clarify?
> 3.) Is it possible to connect a Croquet Viewing portal with a
> terminal program, i.e. putty ?
The core technology for this is a class called TEmbeddedApp. There
are several examples in the SDK of how you can program various kinds
of embedded applications. The KAT demo let's you interactively create
+ A simple text panel from the underlying Squeak environment. What's
really happening is that each Croquet participant receives the same
input (mouse and keyboard) for the text panel, which is passed on to
a 2D Squeak text window "outside" of Croquet, and the result
displayed within Croquet. The Croquet code built on top of
TEmbeddedApp manages the state of the text panel within Croquet, so
that anyone joining late can get the correct state for their local
+ A full Virtual Network Computing (VNC) client viewer, connecting to
an external server. The VNC client is also built in 2D Squeak, but
maintains its own separate TCP Socket (outside of Croquet) to the
common external VNC server. In this case, the shared session state
is maintained by the VNC server, and the Croquet code built on top of
TEMbeeddedApp deliberately avoids replicating input to the embedded
app (the remote VNC server) so that you don't get multiple characters.
Your Putty terminal example is somewhat between these two. But since
VNC is a superset of what you need, it's a good way to prototype
For example, you could display a Web browser with an issue tracker in
one, and a terminal emulator in another. You could also use the
simple text panels as a free-form issue tracker, or later build
something more specific that would be programmed to communicate
separately with Scarab or other programs.
> 4.) Is it possible to trigger a local program from Croquet (i.e.
> popping up a local putty
> window, or a browser) when grabbing at something in the
> 5.) Is it possible to alter the Croquet canvas in a way that is
> more "standard", i.e.
> i'd like to replace the function buttons around the Croquet
> window by more conventional
> buttons and possibly menu popups if necessary. This is just a
> concession to casual
> user expectations.
> I know from former experiance with our customers that they
> want to see the entry level
> as low as possible. Hence i'd like to reuse the standards for
> (wiondows-)gui, i.e. move
> the window closing cross from upper left to upper right, add
> frame around the
> Croquet-window from where i can move the window and control
> the window
> size as expected from todays standards.
Yes. One of the Croquet architects is also an architect of a major
new graphics and windowing system for Squeak, called Tweak. Three of
the demos (KAT, Sailing, and Simple) all use Tweak to provide a
conventional menu bar as well as context menus for objects.
Tweak in Croquet has its own cross-platform default look and feel
that is not quite Windows nor Mac nor Gnome nor KDE, etc. You can
customize this through programming.
You can also programmatically define your own button arrangements for
the flat window panels that you see in Croquet. For example, the KAT
demo windows are deliberately missing the camera button that appears
on window panels in the other demos. Some of the demos also have a
slightly different or missing 'dock' that appears at the bottom of
the Croquet display when you move your mouse there, etc.
> It would even be nice when i could simply start
> an individual Croquet-world in a separate window instead of
> within the Croquet-sdk. Is
> that possible ?
This is not my area, but I don't see why not, with work. As is,
though, you can easily program the Croquet display to be any portion
of the Squeak application, including the entire application window or
even full screen. I think all of the demos will let you interactively
change them to full screen, but they differ in how you do so.
> 6.) Is Croquet already stable and mature enough so that we can
> build such an app
> around it and use it in production scenarios ?
I feel so, but there are several dimensions to consider:
* Look and feel: as discussed.
* Reliability: The general SDK has a number of known issues. But your
application is considerably more constrained than a general demo or a
public environment like Second Life. This allows you to test
throughly and guard against any specific problems you find.
For the core of Croquet, my own expectation is that if you develop
this yourself, you will run into bugs during development, but that
there is nothing you will not be able to fix yourself or work around
such that your customers will not encounter bugs. With good
conventional quality control techniques, I think the engineering of
the Croquet SDK platform is such that your customers will find it far
more reliable than most other commercial applications. However, I
feel that it is only with the current code base that this has become
the case -- there were reliability issues in earlier development
versions in previous years that I, for one, was not experienced
enough to avoid in our pilot-project deployments.
* Repeatability/Deployability: The Squeak core is phenomenally
portable and consistent on a very wide variety of platforms and
configurations of those platforms. Croquet also uses surrounding
technologies that are not implemented completely within Squeak/
Smalltalk. For example, it is dependent on OpenGL and OpenAL, which
requires correct configuration of drivers, libraries and such that
can vary from one machine to another. Webcam video or other add-ons
require "squeak plugins" that vary from one computer platform to
another. Supporting these over a large and arbitrary deployment base
may require special care.
* Support: Being completely open source, with a talented developer
community, I feel that you are much more likely to get issues
addressed as you need than in a closed commercial product. However,
resources are often not immediately available for specific non-core
fringe technologies, such as platform-specific plugins.
* Performance: LAN performance and the performance of all other
Croquet demo objects have always been good. I am only now doing the
first tuning of WAN performance for the KAT demo, which was certainly
not acceptable before. Similarly for the VNC panels. However, I
believe that there are private/commercial applications of Croquet
that have excellent WAN performance.
* Security: If you and your customers are running on Windows, or as a
browser plugin in Internet Explorer, then Croquet security is not
relatively an issue. Nonetheless... Croquet traffic is encrypted in
a manner that I believe is roughly equivalent to SSL. The SDK
includes a simple username/password session login, that is simply
hardcoded in all the demos. Assuming you trust your customers and
vice versa, I think your scenario is quite secure if you build
something with a secure session login. (This version of the SDK is
NOT secure in an absolute sense for open arbitrary communication
among untrustworthy peers, but is probably no more so than other
applications of similar scope.)
> 7.) Is it possible to create a plugin which runs Croquet within a
> (namely iexplorer-6 and firefox) or does such a plugin already
> exist ?
Yes, this is possible. A Squeak plugin for Windows browsers already
exists, and several of us have used this in earlier versions with
good results. I understand that there is also now a Squeak plugin for
Macintosh browser, but that it may or may not have issues displaying
the OpenGL graphics that Croquet depends on.
> Just curious: Would it be feasible to create an eclipse-plugin
> for the
> Croquet-viewer ?
What is the usage scenario?
> 8.) How do two Croquet-worlds communicate with each other
> technically, i.e. do we have to open
> specific ports on our firewalls to allow interactions ? Or
> does Croquet use port 80 for
> underlaying communications ?
On a WAN, one machine must be able to accept multiple connections on
a port that you (as a programmer) specify. Everybody else must be
able to reach that one port, but they themselves can be behind
firewalls, NAT, etc.
(In the discussion lists you may see that LAN also does some
broadcasting for discovery, and other versions have done hole-
punching and used additional ports. But this is not relevant to your
External applications (VNC, putty, etc.) do what they do separately.
Your scenario also calls for voice and perhaps video. These are
handled in the demos as ordinary Croquet traffic. No additional ports
are involved. However, other specialized and tuned applications might
use additional channels for these.
> 9.) Is there any published time schedule for the ongoing
> development in Croquet ?
> 10.)Are there already developers around Croquet who may be
> contacted for helping to realise
> such a project ?
Julian Lombardi ([hidden email]) is forming the non-profit Croquet
Consortium and can put you in touch with developers worldwide.
You can also solicit help on this list.
I encourage you to see if there is a commercial fit with
> If you have read until here, i thank you very much for taking your
> time and i would be
> pleased to get some answers.
> best regards,
Please feel free to contact me,
University of Wisconsin-Madison, Division of Information Technology
|Free forum by Nabble||Edit this page|