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 signature). 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 > implementation: > > 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 > computers. > > 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 your avatar. and... - 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, typing, etc. > 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 the cache. 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 ? Yes. 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 two kinds: + 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 Squeak. + 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 something. 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 > Croquet-world? Yes. > > 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 > browser > (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 use case.) 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 ? No. > > 10.)Are there already developers around Croquet who may be > contacted for helping to realise > such a project ? Yes. 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 http://qwaq.com or http://impara.de > > 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, > hussayn Please feel free to contact me, Howard Stearns University of Wisconsin-Madison, Division of Information Technology +1-608-262-3724 |
Free forum by Nabble | Edit this page |