 |
|
<<O>> Difference Topic
WilliamTracy
(15 - 18 Aug 2007 - Main.afishionado)
|
| |
| META TOPICPARENT | name="WebHome" |
| | | Temporary Worker (Summer 2006)
Handed out road maps at AAA and helped customers plan road trips. Also prepared marketing leaflets for Barbara's Bakery. | |
> > | Wine Cataloger (Summer 2007)
Rearranged a wine cellar for a private party and set up a web-based tracking system. | | | \ No newline at end of file |
|
<<O>> Difference Topic
WilliamTracy
(14 - 17 Aug 2007 - Main.afishionado)
|
| |
| META TOPICPARENT | name="WebHome" |
| | | Design & Analysis of Algorithms
Engineering Economics
Quality Engineering | |
> > | Systems Programming
Technical Writing | | |
Skills | | | NBLUG (North Bay Linux Users Group) panel speaker.
Open Source Projects | |
< < | I created CAS, rel="nofollow" an Open Source, web-friendly computer algebra system based on Hartmath. I have worked on Project Looking Glass, Sun Microsystem's three-dimensional Unix/Linux desktop environment, including rewriting their developer documentation. I have contributed to several Java libraries as well, including SkinLF (a library for making Swing programs "skinnable") and SwingFX (a set of reusable Swing components, not to be confused with Sun's JavaFX?). | > > | I created CAS, an Open Source, web-friendly computer algebra system based on Hartmath. I have worked on Project Looking Glass, Sun Microsystem's three-dimensional Unix/Linux desktop environment, including rewriting their developer documentation. I have contributed to several Java libraries as well, including SkinLF (a library for making Swing programs "skinnable") and SwingFX (a set of reusable Swing components, not to be confused with Sun's JavaFX?). | | | Work Experience
Math Lab Assistant at Santa Rosa Junior College (Winter 2003-2004) |
|
<<O>> Difference Topic
WilliamTracy
(13 - 17 Aug 2007 - Main.afishionado)
|
| |
| META TOPICPARENT | name="WebHome" |
| |
< < | William Frederick Tracy | > > | William Frederick Tracy | | | afishionado@gmail.com wtracy@calpoly.edu
I am currently looking for an internship in software engineering in northen California (I'm living in the greater North Bay Area).
Education | |
< < | Santa Rosa Junior College - GPA 3.7. Received A.S. degree June 2006. | > > | Santa Rosa Junior College - Received A.S. degree June 2006. | | | UC Berkeley summer session 2004:
- Structure and Interpretation of Computer Programs using Lisp
| |
< < | California Polytechnic State University – GPA 3.2. Majoring in Software Engineering. | > > | California Polytechnic State University - Majoring in Software Engineering. | | |
- Discrete Structures
- Teamwork
|
|
<<O>> Difference Topic
WilliamTracy
(12 - 04 Jul 2007 - Main.afishionado)
|
| |
| META TOPICPARENT | name="WebHome" |
William Frederick Tracy | |
> > | afishionado@gmail.com wtracy@calpoly.edu | | | | |
< < | I am currently looking for an internship in software engineering. | > > | I am currently looking for an internship in software engineering in northen California (I'm living in the greater North Bay Area). | | | Education
Santa Rosa Junior College - GPA 3.7. Received A.S. degree June 2006. | | | I have programmed in QBasic, C, C++, Java, JavaScript, MASM assembly, Python, Perl, and Scheme (Lisp). I am familiar with both Java and Unix APIs. I consider myself very knowledgeable about Java's Swing library in particular.
Related Activities | |
< < | NBLUG (North Bay Linux Users Group) panel speaker. | > > | NBLUG (North Bay Linux Users Group) panel speaker. | | | Open Source Projects
I created CAS, rel="nofollow" an Open Source, web-friendly computer algebra system based on Hartmath. I have worked on Project Looking Glass, Sun Microsystem's three-dimensional Unix/Linux desktop environment, including rewriting their developer documentation. I have contributed to several Java libraries as well, including SkinLF (a library for making Swing programs "skinnable") and SwingFX (a set of reusable Swing components, not to be confused with Sun's JavaFX?). |
|
<<O>> Difference Topic
WilliamTracy
(11 - 18 Jun 2007 - Main.afishionado)
|
| |
| META TOPICPARENT | name="WebHome" |
| |
< < | LGChess | > > | William Frederick Tracy | | | | |
< < |
 | > > | I am currently looking for an internship in software engineering. | | | | |
> > | Education
Santa Rosa Junior College - GPA 3.7. Received A.S. degree June 2006. | | | | |
< < | Motivation
Everyone loves computer games. It would be worthwhile to have one or more Looking Glass native games if only to give people something fun to play with during their first experience with the environment. However, that is not the primary goal of my proposed project. I am interested in using a board game as a test bed for taking the 3D environment in new directions.
A board game seemed like a good candidate, since it is an object that is encountered often enough in the 3D world. Board games are intuitive to manipulate without being time-consuming to navigate. Finally, they are relatively planar while still being 3D, and provide an unused flat surface (the bottom) that is free to be used in the UI in any way imaginable.
There are many board games I could have chosen. Chess seemed to be a natural choice. I understand the rules of chess well enough to implement them. There is also a long tradition of computer chess games, from Turing's first chess-playing AI, to the much-publicized matches between Kasparov and Deep Blue.
I would like to continue this tradition, and at the same time explore 3D user interaction, integration of controls, and ways to provide feedback to the user in the 3D environment.
Real 3D Interaction
| Proposed key bindings |
| Left mouse button | Click and drag pieces to move them. |
| Click and drag on the board to move the game to a different part of the screen. |
| Double click to immediately show the control panel (see "Swing integration" below). |
| Middle mouse button | Hide game; may later be used to show a context menu. |
| Right mouse button | Click and drag to rotate the board. |
| Arrow keys/Numberic keypad | Rotate the board. |
In Looking Glass, applications are objects that can be rotated with three axes of freedom. The Looking Glass core developers have leveraged this by allowing X11 application windows to be “flipped over” and the back side accessed. However, to date, most Looking Glass native applications have not taken advantage of this functionality. I want to explore the possibilities this functionality creates by writing a program that allows—even requires—the user to rotate the application interface as part of normal use.
Once a user finishes making a move, the game will remember the board's current orientation, and rotate the board to the other player's “view”. Once that player moves, the first player's view will be restored. Even when playing against a computer player or an Internet opponent, this will provide immediate feedback to the user about the current state of the game—whose turn it is. The application orientation then can not only be a way for the program to receive input—it can actually be a way to provide feedback as well!
Swing Integration
The Looking Glass team has produced a Swing widget that allows Swing interfaces to be embedded into Looking Glass 3D applications. Again, this is a feature of which few Looking Glass native applications have taken advantage. I want to demonstrate how such an object can be integrated into a 3D application in a way that is intuitive to use and feels natural in a 3D environment.
I propose to locate the control panel on the “bottom” of the game board. It can then be accessed by simply rotating the interface. This technique eliminates the need for a menu bar to be visible at all times, yet does not require the user to memorize arbitrary keyboard shortcuts. In general, it could be applied to freeing up screen “real estate” in document-centered applications, and improving the “feel” of immersive games.
Whenever the user rotates far enough to make the control panel visible and releases the mouse button, the application will “snap” into place with the plane of the controls parallel to the plane of the screen, and with the Swing components properly aligned with the correct direction “up”. The user will then be able to interact with the Swing widgets normally, and return to the previous view or exit the game entirely by clicking the appropriate button.
“Thought Bubble” Messaging Widget
Looking Glass removes the traditional visible window frame around 3D applications. Among other things, this eliminates the standard status bar at the bottom of the window. I propose a new “thought bubble” widget to replace this. It should be aesthetically pleasing, and unobtrusive. Its behavior will be somewhere between a standard tool tip and a dialog box.
The bubble will fade in whenever there is a message to display, and will dynamically attempt to position itself where it will be least obtrusive (if the game interface is in one corner of the screen, the bubble will appear in a different corner of the screen, etc.). The widget will not block user input, and will fade away as the user continues interacting with the program. It could also be dismissed by directly clicking on the bubble.
Optional “Would be Nice” Features
I have considered adding a themeable user interface, a wait animation, a pluggable player agent architecture, and piece reflections in the game board. All of these are optional features that may not be possible to finish within the SoC time frame.
The theme system would allow new skins for the program to be loaded from data files. Each skin would include meshes for the pieces, textures for the board and pieces, and would specify a Swing LAF for the control panel. Possibly they could be implemented as zip files containing an XML “index” file and the mesh files.
The wait animation is visible in figure 2. It is loosely based on the Mac OS X wait icon; a variation on the theme can be seen in the Java applet loader. Instead of a circle of bars on the screen with pulsing opacity, I want to use a circle of spheres arranged in 3D. They will fade in and out, simulating a looping motion.
AI is another issue. Initially, I intend to provide the option for two players at the same computer to play against each other, simply because this is simple to implement, allowing me to focus on other issues. I would like to provide at least some simple AI or Internet play option in the final program. Beyond this, it would be nice to provide a pluggable player agent system that would allow new agents to be loaded at runtime. This would involve providing an API that agents could be programmed against. Third parties would then be able to create and distribute their own AI's for the game, and possibly even implement such things as Internet play via this mechanism.
In the screen shots accompanying this proposal, you can see the game pieces reflected in the board. My understanding is that with the new programmable shader support in Java3D?, it should be possible to implement this effect in the actual game. However, this would serve no real function other than to “prettify” the UI, and is very low on the to-do list.
Tentative Schedule
The tentative schedule below is, well, tentative. As with all programming, there is no real way to know beforehand how long a project will take. I opted to include the “optional” features in this timetable; if I fall behind schedule, I will simply skip these features to deliver the project on time.
| Weeks 1 and 2 (May 23-June 6) | Basic interface and Java2D? integration: At the end of this stage, it should be possible to demonstrate the basic UI principles of the application. |
| Weeks 3 through 5 (June 6-27) | Implement piece moving: This could get complicated, given that the pieces will have to move in a plane that is not parallel to the screen. In this stage, the groundwork will be laid for a playable game. |
| Weeks 6 and 7 (June 27-July 11) | Implementation of the chess rule set: When this is done, the game should be playable! |
| Weeks 8 and 9 (July 11-25) | Thought bubble messaging widget, busy animation, and themes: Hopefully, I should be able to badger the LG community into creating at least one default theme; otherwise I will have to whip up some meshes myself. |
| Weeks 9 and 10 (July 25-August 8) | AI or Internet play: I hope to able to find existing code that I can reuse for this; otherwise, I should be able to get something simple done in this time frame. Before I reach this step, I plan on polling the LG3D? community to see whether single player or Internet play generates more interest, and go from there. |
| Weeks 11 and 12 (August 8-21) | If time is available, I will work on the reflections feature. Otherwise, I will focus on wrapping up unfinished code, cleaning the code base, and writing documentation. |
About me
I am a software engineering student transferring to Cal Poly San Louis Obispo, fall 2006. I have a special interest in UI design. I can be reached at afishionado@gmail.com.
Work experience
September 2003-June 2004
Math Lab Assistant Santa Rosa Junior College
Supervisor: Dan Walton (Phone: 707 527-4708)
Duties: Assisted JC students with computer use.
Other computer experience
I programmed in C++ for a year and a half before switching to Java for most of my work three years ago. I am familiar with most of the J2SE? platform, including Java3D?, but am most familiar with the AWT and Swing toolkits. To date, I have not actually written any code for Looking Glass, but have read the tutorials and studied the API documentation, and do not expect any major surprises.
I created the CAS open source project as an independent study class last summer. I completed it with a mentor who was mostly unfamiliar with the technologies I used, and while teaching myself Java3D?. The project was an exercise in creating an attractive and usable UI for an existing symbolic math engine. You can check out the code to see that it is clean and well documented. The change log is very detailed, and shows that I am capable of working with a schedule and being transparent about my progress. There is also a very flattering article about my program.
I am familiar with Windows, OS X, and Linux desktop systems. I do almost all of my development on Linux.
I was team programmer for the 2005 and 2006 Mesa Robot competition at the Santa Rosa Junior College.
Related course work
Santa Rosa Junior College GPA 3.6
- Math 1A/1B First year calculus (Completed while in high school.)
- Math 2A/2B Second year calculus
- CIS 10A/10B Computer Science fundamentals (Completed while in high school.)
- CIS 11 Data Structures and Algorithms (Completed while in high school.)
- CIS 17 Java (Completed while in high school.)
- CIS 22 Assembly language
- CIS 49 Special studies (Implemented CAS.)
| | | UC Berkeley summer session 2004: | |
< < |
- CS61A? Structure and Interpretation of Computer Programs using LISP
I will transfer to Cal Poly, fall 2006.
Credits
Special thanks to Sean Day for letting me “borrow” his chess models for the images accompanying this proposal. (I still have to get new models for the actual program!)
All the mock images were created with POV-Ray 3.6.1. | > > | - Structure and Interpretation of Computer Programs using Lisp
| | | | |
< < | Images hosted on Image Shack | > > | California Polytechnic State University – GPA 3.2. Majoring in Software Engineering.
- Discrete Structures
- Teamwork
- Statistical Methods for Engineers
- Design & Analysis of Algorithms
- Engineering Economics
- Quality Engineering
Skills
I am familiar with popular Windows, Macintosh, Linux, and Unix environments. I have experience installing and administering both Windows and Linux systems, successfully troubleshooting and fixing both software and hardware problems.
I have programmed in QBasic, C, C++, Java, JavaScript, MASM assembly, Python, Perl, and Scheme (Lisp). I am familiar with both Java and Unix APIs. I consider myself very knowledgeable about Java's Swing library in particular.
Related Activities
NBLUG (North Bay Linux Users Group) panel speaker.
Open Source Projects
I created CAS, rel="nofollow" an Open Source, web-friendly computer algebra system based on Hartmath. I have worked on Project Looking Glass, Sun Microsystem's three-dimensional Unix/Linux desktop environment, including rewriting their developer documentation. I have contributed to several Java libraries as well, including SkinLF (a library for making Swing programs "skinnable") and SwingFX (a set of reusable Swing components, not to be confused with Sun's JavaFX?).
Work Experience
Math Lab Assistant at Santa Rosa Junior College (Winter 2003-2004)
Assisted JC students using computers and software including Maple, Word, Excel, Photoshop, and Macintosh OS X. | | | | |
< < |
| > > | Temporary Worker (Summer 2006)
Handed out road maps at AAA and helped customers plan road trips. Also prepared marketing leaflets for Barbara's Bakery. | | | |
|
<<O>> Difference Topic
WilliamTracy
(10 - 04 May 2006 - Main.afishionado)
|
| |
| META TOPICPARENT | name="WebHome" |
| | | I programmed in C++ for a year and a half before switching to Java for most of my work three years ago. I am familiar with most of the J2SE? platform, including Java3D?, but am most familiar with the AWT and Swing toolkits. To date, I have not actually written any code for Looking Glass, but have read the tutorials and studied the API documentation, and do not expect any major surprises. | |
< < | I created the CAS open source project as an independent study class last summer. I completed it with a mentor who was mostly unfamiliar with the technologies I used, and while teaching myself Java3D?. The project was an exercise in creating a UI that is very attractive and usable. You can check out the code to see that it is clean and well documented. The change log is very detailed, and shows that I am capable of working with a schedule and being transparent about my progress. | > > | I created the CAS open source project as an independent study class last summer. I completed it with a mentor who was mostly unfamiliar with the technologies I used, and while teaching myself Java3D?. The project was an exercise in creating an attractive and usable UI for an existing symbolic math engine. You can check out the code to see that it is clean and well documented. The change log is very detailed, and shows that I am capable of working with a schedule and being transparent about my progress. There is also a very flattering article about my program. | | | I am familiar with Windows, OS X, and Linux desktop systems. I do almost all of my development on Linux. |
|
<<O>> Difference Topic
WilliamTracy
(9 - 04 May 2006 - Main.afishionado)
|
| |
| META TOPICPARENT | name="WebHome" |
| | | The tentative schedule below is, well, tentative. As with all programming, there is no real way to know beforehand how long a project will take. I opted to include the “optional” features in this timetable; if I fall behind schedule, I will simply skip these features to deliver the project on time. | |
< < |
| Weeks 1 and 2 (May 23-June 6) | Basic interface, and Java2D? integration. At the end of this stage, it should be possible to demonstrate the basic UI principles of the application. |
| Weeks 3 through 5 (June 6-27) | Implement piece moving. This could get complicated, given that the pieces will have to move in a plane that is not parallel to the screen. In this stage, the groundwork will be laid for a playable game. |
| Weeks 6 and 7 (June 27-July 11) | Implementation of the chess rule set. When this is done, the game should be playable! |
| Weeks 8 and 9 (July 11-25) | Thought bubble messaging widget, busy animation, and themes. Hopefully, I should be able to badger the LG community into creating at least one default theme; otherwise I will have to whip up some meshes myself. |
| Weeks 9 and 10 (July 25-August 8) | AI or Internet play. I hope to able to find existing code that I can reuse for this; otherwise, I should be able to get something simple done in this time frame. Before I reach this step, I plan on polling the LG3D? community to see whether single player or Internet play generates more interest, and go from there. |
| > > |
| Weeks 1 and 2 (May 23-June 6) | Basic interface and Java2D? integration: At the end of this stage, it should be possible to demonstrate the basic UI principles of the application. |
| Weeks 3 through 5 (June 6-27) | Implement piece moving: This could get complicated, given that the pieces will have to move in a plane that is not parallel to the screen. In this stage, the groundwork will be laid for a playable game. |
| Weeks 6 and 7 (June 27-July 11) | Implementation of the chess rule set: When this is done, the game should be playable! |
| Weeks 8 and 9 (July 11-25) | Thought bubble messaging widget, busy animation, and themes: Hopefully, I should be able to badger the LG community into creating at least one default theme; otherwise I will have to whip up some meshes myself. |
| Weeks 9 and 10 (July 25-August 8) | AI or Internet play: I hope to able to find existing code that I can reuse for this; otherwise, I should be able to get something simple done in this time frame. Before I reach this step, I plan on polling the LG3D? community to see whether single player or Internet play generates more interest, and go from there. |
| | |
| Weeks 11 and 12 (August 8-21) | If time is available, I will work on the reflections feature. Otherwise, I will focus on wrapping up unfinished code, cleaning the code base, and writing documentation. |
About me | | | Images hosted on Image Shack | |
> > |
|
|
<<O>> Difference Topic
WilliamTracy
(8 - 04 May 2006 - Main.afishionado)
|
| |
| META TOPICPARENT | name="WebHome" |
| | | The theme system would allow new skins for the program to be loaded from data files. Each skin would include meshes for the pieces, textures for the board and pieces, and would specify a Swing LAF for the control panel. Possibly they could be implemented as zip files containing an XML “index” file and the mesh files. | |
< < | The wait animation in visible in figure 2. It is loosely based on the Mac OS X wait icon; a variation on the theme can be seen in the Java applet loader. Instead of a circle of bars on the screen with pulsing opacity, I want to use a circle of spheres arranged in 3D. They will fade in and out, simulating a looping motion. | > > | The wait animation is visible in figure 2. It is loosely based on the Mac OS X wait icon; a variation on the theme can be seen in the Java applet loader. Instead of a circle of bars on the screen with pulsing opacity, I want to use a circle of spheres arranged in 3D. They will fade in and out, simulating a looping motion. | | | AI is another issue. Initially, I intend to provide the option for two players at the same computer to play against each other, simply because this is simple to implement, allowing me to focus on other issues. I would like to provide at least some simple AI or Internet play option in the final program. Beyond this, it would be nice to provide a pluggable player agent system that would allow new agents to be loaded at runtime. This would involve providing an API that agents could be programmed against. Third parties would then be able to create and distribute their own AI's for the game, and possibly even implement such things as Internet play via this mechanism. | | | About me | |
< < | I am a software engineering student transferring to Cal Poly San Louis Obispo next fall. I have a special interest in UI design. I can be reached at afishionado@gmail.com. | > > | I am a software engineering student transferring to Cal Poly San Louis Obispo, fall 2006. I have a special interest in UI design. I can be reached at afishionado@gmail.com. | | | Work experience | | |
- CIS 49 Special studies (Implemented CAS.)
UC Berkeley summer session 2004:
- CS61A? Structure and Interpretation of Computer Programs using LISP
| |
< < | I will transfer to Cal Poly next fall. | > > | I will transfer to Cal Poly, fall 2006. | | | Credits |
|
<<O>> Difference Topic
WilliamTracy
(7 - 04 May 2006 - Main.afishionado)
|
| |
| META TOPICPARENT | name="WebHome" |
| | | Once a user finishes making a move, the game will remember the board's current orientation, and rotate the board to the other player's “view”. Once that player moves, the first player's view will be restored. Even when playing against a computer player or an Internet opponent, this will provide immediate feedback to the user about the current state of the game—whose turn it is. The application orientation then can not only be a way for the program to receive input—it can actually be a way to provide feedback as well! | |
< < |  | > > |  | | | Swing Integration | | | Whenever the user rotates far enough to make the control panel visible and releases the mouse button, the application will “snap” into place with the plane of the controls parallel to the plane of the screen, and with the Swing components properly aligned with the correct direction “up”. The user will then be able to interact with the Swing widgets normally, and return to the previous view or exit the game entirely by clicking the appropriate button. | |
< < |  | > > |  | | | “Thought Bubble” Messaging Widget | | |
| Weeks 3 through 5 (June 6-27) | Implement piece moving. This could get complicated, given that the pieces will have to move in a plane that is not parallel to the screen. In this stage, the groundwork will be laid for a playable game. |
| Weeks 6 and 7 (June 27-July 11) | Implementation of the chess rule set. When this is done, the game should be playable! |
| Weeks 8 and 9 (July 11-25) | Thought bubble messaging widget, busy animation, and themes. Hopefully, I should be able to badger the LG community into creating at least one default theme; otherwise I will have to whip up some meshes myself. |
| |
< < |
| Weeks 9 and 10 (July 25-August 8) | AI or Internet play. I hope to able to find existing code that I can reuse for this; otherwise, I should be able to get something simple done in this time frame. Before I reach this step, I plan on polling the LG3D? community on whether AI or Internet play would be preferred, and go from there. |
| > > |
| Weeks 9 and 10 (July 25-August 8) | AI or Internet play. I hope to able to find existing code that I can reuse for this; otherwise, I should be able to get something simple done in this time frame. Before I reach this step, I plan on polling the LG3D? community to see whether single player or Internet play generates more interest, and go from there. |
| | |
| Weeks 11 and 12 (August 8-21) | If time is available, I will work on the reflections feature. Otherwise, I will focus on wrapping up unfinished code, cleaning the code base, and writing documentation. |
About me | | | Work experience | |
< < | September 2003-June 2004 Math Lab Assistant Santa Rosa Junior College Supervisor: Dan Walton Phone: 707 527-4708
Duties: Assisted JC students with computers and computer programs. | > > | September 2003-June 2004
Math Lab Assistant Santa Rosa Junior College
Supervisor: Dan Walton (Phone: 707 527-4708)
Duties: Assisted JC students with computer use. | | | Other computer experience | | | Related course work
Santa Rosa Junior College GPA 3.6 | |
< < | Math 1A/1B First year calculus (Completed while in high school.)
Math 2A/2B Second year calculus
CIS 10A/10B Computer Science fundamentals (Completed while in high school.)
CIS 11 Data Structures and Algorithms (Completed while in high school.)
CIS 17 Java (Completed while in high school.)
CIS 22 Assembly language
CIS 49 Special studies (Implemented CAS.) | > > |
- Math 1A/1B First year calculus (Completed while in high school.)
- Math 2A/2B Second year calculus
- CIS 10A/10B Computer Science fundamentals (Completed while in high school.)
- CIS 11 Data Structures and Algorithms (Completed while in high school.)
- CIS 17 Java (Completed while in high school.)
- CIS 22 Assembly language
- CIS 49 Special studies (Implemented CAS.)
| | | UC Berkeley summer session 2004: | |
< < | CS61A? Structure and Interpretation of Computer Programs using LISP | > > |
- CS61A? Structure and Interpretation of Computer Programs using LISP
| | | I will transfer to Cal Poly next fall.
Credits |
|
<<O>> Difference Topic
WilliamTracy
(6 - 04 May 2006 - Main.afishionado)
|
| |
| META TOPICPARENT | name="WebHome" |
| | | Real 3D Interaction | |
< < | | > > | | | | | Proposed key bindings |
| Left mouse button | Click and drag pieces to move them. |
| Click and drag on the board to move the game to a different part of the screen. |
|
|
<<O>> Difference Topic
WilliamTracy
(5 - 04 May 2006 - Main.afishionado)
|
| |
| META TOPICPARENT | name="WebHome" |
| |
> > | | | | LGChess
 | |
< < | | > > | | | | Motivation | | | Real 3D Interaction | |
> > |
| Proposed key bindings |
| Left mouse button | Click and drag pieces to move them. |
| Click and drag on the board to move the game to a different part of the screen. |
| Double click to immediately show the control panel (see "Swing integration" below). |
| Middle mouse button | Hide game; may later be used to show a context menu. |
| Right mouse button | Click and drag to rotate the board. |
| Arrow keys/Numberic keypad | Rotate the board. |
| | | In Looking Glass, applications are objects that can be rotated with three axes of freedom. The Looking Glass core developers have leveraged this by allowing X11 application windows to be “flipped over” and the back side accessed. However, to date, most Looking Glass native applications have not taken advantage of this functionality. I want to explore the possibilities this functionality creates by writing a program that allows—even requires—the user to rotate the application interface as part of normal use. | |
< < |
| Proposed key bindings |
| Left mouse button | Click and drag on pieces to move them. |
| Left mouse button | Click and drag on the board to move the game to a different part of the screen. |
| Left mouse button | Double click to immediately show the control panel (see “Swing Integration” below). |
| Right mouse button | Click and drag to rotate the board. |
| Middle mouse button | Hide (“minimize”) game; may later be used to show a context menu. |
| Arrow keys/Numeric keypad | Rotate the board. |
| > > | | | | Once a user finishes making a move, the game will remember the board's current orientation, and rotate the board to the other player's “view”. Once that player moves, the first player's view will be restored. Even when playing against a computer player or an Internet opponent, this will provide immediate feedback to the user about the current state of the game—whose turn it is. The application orientation then can not only be a way for the program to receive input—it can actually be a way to provide feedback as well! | | | Optional “Would be Nice” Features | |
< < | I have considered adding a themeable user interface, a wait animation, a pluggable player agent architecture, and piece reflections in the game board. All of these are optional features that may not be possible to finish within the SoC? time frame. | > > | I have considered adding a themeable user interface, a wait animation, a pluggable player agent architecture, and piece reflections in the game board. All of these are optional features that may not be possible to finish within the SoC time frame. | | | The theme system would allow new skins for the program to be loaded from data files. Each skin would include meshes for the pieces, textures for the board and pieces, and would specify a Swing LAF for the control panel. Possibly they could be implemented as zip files containing an XML “index” file and the mesh files. | |
< < | The wait animation in visible in figure 2. It is loosely based on the Mac OS X wait icon; a variation on the theme can be seen in the Java applet loader. Instead of a circle of bars on the screen with pulsing opacity, I want to use a circle of spheres arranged in 3D. They will fade in and out, simulating a looping motion. | > > | The wait animation in visible in figure 2. It is loosely based on the Mac OS X wait icon; a variation on the theme can be seen in the Java applet loader. Instead of a circle of bars on the screen with pulsing opacity, I want to use a circle of spheres arranged in 3D. They will fade in and out, simulating a looping motion. | | | AI is another issue. Initially, I intend to provide the option for two players at the same computer to play against each other, simply because this is simple to implement, allowing me to focus on other issues. I would like to provide at least some simple AI or Internet play option in the final program. Beyond this, it would be nice to provide a pluggable player agent system that would allow new agents to be loaded at runtime. This would involve providing an API that agents could be programmed against. Third parties would then be able to create and distribute their own AI's for the game, and possibly even implement such things as Internet play via this mechanism. |
|
<<O>> Difference Topic
WilliamTracy
(4 - 04 May 2006 - Main.afishionado)
|
| |
| META TOPICPARENT | name="WebHome" |
LGChess | |
< < | | | |  | |
> > |  | | | | | | Once a user finishes making a move, the game will remember the board's current orientation, and rotate the board to the other player's “view”. Once that player moves, the first player's view will be restored. Even when playing against a computer player or an Internet opponent, this will provide immediate feedback to the user about the current state of the game—whose turn it is. The application orientation then can not only be a way for the program to receive input—it can actually be a way to provide feedback as well! | |
< < | | > > |  | | | Swing Integration | | | Whenever the user rotates far enough to make the control panel visible and releases the mouse button, the application will “snap” into place with the plane of the controls parallel to the plane of the screen, and with the Swing components properly aligned with the correct direction “up”. The user will then be able to interact with the Swing widgets normally, and return to the previous view or exit the game entirely by clicking the appropriate button. | |
< < | | > > |  | | | “Thought Bubble” Messaging Widget | | | The theme system would allow new skins for the program to be loaded from data files. Each skin would include meshes for the pieces, textures for the board and pieces, and would specify a Swing LAF for the control panel. Possibly they could be implemented as zip files containing an XML “index” file and the mesh files. | |
< < | The wait animation in visible in figure 2. It is loosely based on the Mac OS X wait icon; a variation on the theme can be seen in the Java applet loader. Instead of a circle of bars on the screen with pulsing opacity, I want to use a circle of spheres arranged in 3D. They will fade in and out, simulating a looping motion. | > > | The wait animation in visible in figure 2. It is loosely based on the Mac OS X wait icon; a variation on the theme can be seen in the Java applet loader. Instead of a circle of bars on the screen with pulsing opacity, I want to use a circle of spheres arranged in 3D. They will fade in and out, simulating a looping motion. | | | AI is another issue. Initially, I intend to provide the option for two players at the same computer to play against each other, simply because this is simple to implement, allowing me to focus on other issues. I would like to provide at least some simple AI or Internet play option in the final program. Beyond this, it would be nice to provide a pluggable player agent system that would allow new agents to be loaded at runtime. This would involve providing an API that agents could be programmed against. Third parties would then be able to create and distribute their own AI's for the game, and possibly even implement such things as Internet play via this mechanism. | | | About me | |
< < | I am a software engineering student transferring to Cal Poly San Louis Obispo next fall. I have a special interest in UI design. I can be reached at afishionado@gmail.com. | > > | I am a software engineering student transferring to Cal Poly San Louis Obispo next fall. I have a special interest in UI design. I can be reached at afishionado@gmail.com. | | | Work experience | | | I programmed in C++ for a year and a half before switching to Java for most of my work three years ago. I am familiar with most of the J2SE? platform, including Java3D?, but am most familiar with the AWT and Swing toolkits. To date, I have not actually written any code for Looking Glass, but have read the tutorials and studied the API documentation, and do not expect any major surprises. | |
< < | I created the CAS open source project as an independent study class last summer. I completed it with a mentor who was mostly unfamiliar with the technologies I used, and while teaching myself Java3D?. The project was an exercise in creating a UI that is very attractive and usable. You can check out the code to see that it is clean and well documented. The change log is very detailed, and shows that I am capable of working with a schedule and being transparent about my progress. | > > | I created the CAS open source project as an independent study class last summer. I completed it with a mentor who was mostly unfamiliar with the technologies I used, and while teaching myself Java3D?. The project was an exercise in creating a UI that is very attractive and usable. You can check out the code to see that it is clean and well documented. The change log is very detailed, and shows that I am capable of working with a schedule and being transparent about my progress. | | | I am familiar with Windows, OS X, and Linux desktop systems. I do almost all of my development on Linux. | | | Credits | |
< < | Special thanks to Sean Day for letting me “borrow” his chess models for the images accompanying this proposal. (I still have to get new models for the actual program!) | > > | Special thanks to Sean Day for letting me “borrow” his chess models for the images accompanying this proposal. (I still have to get new models for the actual program!)
All the mock images were created with POV-Ray 3.6.1. | | | | |
< < | All the mock images were created with POV-Ray 3.6.1. | > > | Images hosted on Image Shack | | | |
|
<<O>> Difference Topic
WilliamTracy
(3 - 03 May 2006 - Main.afishionado)
|
| |
| META TOPICPARENT | name="WebHome" |
| |
< < | William Tracy
2140 San Antonio Drive
Santa Rosa, CA 95405
Birth date October 9, 1986
Phone: 707 578-3159 e-mail: afishionado@gmail.com
Occupation: Student of Computer Science at the Santa Rosa Junior College | > > | LGChess | | | | |
> > | | | | | |
< < | Work experience | > > |  | | | | |
< < | September 2003-June 2004
Math Lab Assistant
Santa Rosa Junior College
Supervisor: Dan Walton Phone: 707 527-4708 | > > | | | | | |
< < | Duties: Assist JC students with computers and computer programs. I have experience with: math programs, Word, Excel, Photoshop, and OS X. | > > | Motivation | | | | |
< < | Other computer experience | > > | Everyone loves computer games. It would be worthwhile to have one or more Looking Glass native games if only to give people something fun to play with during their first experience with the environment. However, that is not the primary goal of my proposed project. I am interested in using a board game as a test bed for taking the 3D environment in new directions. | | | | |
< < | I programmed in C++ for a year and a half before switching to Java for most of my work two years ago. I am familiar with most of the J2SE? platform, but am most familiar with the AWT and Swing toolkits. I have not worked with 3D programming before, but have worked with the DOM XML API recently, and expect the tree-based Java3D? scene graphs to be similar. | > > | A board game seemed like a good candidate, since it is an object that is encountered often enough in the 3D world. Board games are intuitive to manipulate without being time-consuming to navigate. Finally, they are relatively planar while still being 3D, and provide an unused flat surface (the bottom) that is free to be used in the UI in any way imaginable. | | | | |
< < | I created the NoExceptions and CAS open source projects, and have contributed to the SkinLF project. | > > | There are many board games I could have chosen. Chess seemed to be a natural choice. I understand the rules of chess well enough to implement them. There is also a long tradition of computer chess games, from Turing's first chess-playing AI, to the much-publicized matches between Kasparov and Deep Blue. | | | | |
< < | I have worked with, Windows 98, Windows XP, jEdit, KWrite, Kate, GEdit, Mozilla, Firefox, OpenOffice.org, Linux (SuSE? and Debian), KDE, Gnome, WindowMaker?, Fluxbox, Enlightenment, Emacs, and Vi. | > > | I would like to continue this tradition, and at the same time explore 3D user interaction, integration of controls, and ways to provide feedback to the user in the 3D environment. | | | | |
< < | I was team programmer for the spring 2005 Mesa Robot competition at the Santa Rosa Junior College. | > > | Real 3D Interaction | | | | |
< < | I have also upgraded memory, modems, and CD drives in the past as well as removed a virus. | > > | In Looking Glass, applications are objects that can be rotated with three axes of freedom. The Looking Glass core developers have leveraged this by allowing X11 application windows to be “flipped over” and the back side accessed. However, to date, most Looking Glass native applications have not taken advantage of this functionality. I want to explore the possibilities this functionality creates by writing a program that allows—even requires—the user to rotate the application interface as part of normal use. | | | | |
< < | Related course work | > > |
| Proposed key bindings |
| Left mouse button | Click and drag on pieces to move them. |
| Left mouse button | Click and drag on the board to move the game to a different part of the screen. |
| Left mouse button | Double click to immediately show the control panel (see “Swing Integration” below). |
| Right mouse button | Click and drag to rotate the board. |
| Middle mouse button | Hide (“minimize”) game; may later be used to show a context menu. |
| Arrow keys/Numeric keypad | Rotate the board. |
Once a user finishes making a move, the game will remember the board's current orientation, and rotate the board to the other player's “view”. Once that player moves, the first player's view will be restored. Even when playing against a computer player or an Internet opponent, this will provide immediate feedback to the user about the current state of the game—whose turn it is. The application orientation then can not only be a way for the program to receive input—it can actually be a way to provide feedback as well!
Swing Integration
The Looking Glass team has produced a Swing widget that allows Swing interfaces to be embedded into Looking Glass 3D applications. Again, this is a feature of which few Looking Glass native applications have taken advantage. I want to demonstrate how such an object can be integrated into a 3D application in a way that is intuitive to use and feels natural in a 3D environment.
I propose to locate the control panel on the “bottom” of the game board. It can then be accessed by simply rotating the interface. This technique eliminates the need for a menu bar to be visible at all times, yet does not require the user to memorize arbitrary keyboard shortcuts. In general, it could be applied to freeing up screen “real estate” in document-centered applications, and improving the “feel” of immersive games.
Whenever the user rotates far enough to make the control panel visible and releases the mouse button, the application will “snap” into place with the plane of the controls parallel to the plane of the screen, and with the Swing components properly aligned with the correct direction “up”. The user will then be able to interact with the Swing widgets normally, and return to the previous view or exit the game entirely by clicking the appropriate button.
“Thought Bubble” Messaging Widget
Looking Glass removes the traditional visible window frame around 3D applications. Among other things, this eliminates the standard status bar at the bottom of the window. I propose a new “thought bubble” widget to replace this. It should be aesthetically pleasing, and unobtrusive. Its behavior will be somewhere between a standard tool tip and a dialog box.
The bubble will fade in whenever there is a message to display, and will dynamically attempt to position itself where it will be least obtrusive (if the game interface is in one corner of the screen, the bubble will appear in a different corner of the screen, etc.). The widget will not block user input, and will fade away as the user continues interacting with the program. It could also be dismissed by directly clicking on the bubble.
Optional “Would be Nice” Features
I have considered adding a themeable user interface, a wait animation, a pluggable player agent architecture, and piece reflections in the game board. All of these are optional features that may not be possible to finish within the SoC? time frame.
The theme system would allow new skins for the program to be loaded from data files. Each skin would include meshes for the pieces, textures for the board and pieces, and would specify a Swing LAF for the control panel. Possibly they could be implemented as zip files containing an XML “index” file and the mesh files.
The wait animation in visible in figure 2. It is loosely based on the Mac OS X wait icon; a variation on the theme can be seen in the Java applet loader. Instead of a circle of bars on the screen with pulsing opacity, I want to use a circle of spheres arranged in 3D. They will fade in and out, simulating a looping motion.
AI is another issue. Initially, I intend to provide the option for two players at the same computer to play against each other, simply because this is simple to implement, allowing me to focus on other issues. I would like to provide at least some simple AI or Internet play option in the final program. Beyond this, it would be nice to provide a pluggable player agent system that would allow new agents to be loaded at runtime. This would involve providing an API that agents could be programmed against. Third parties would then be able to create and distribute their own AI's for the game, and possibly even implement such things as Internet play via this mechanism. | | | | |
< < | Santa Rosa Junior College GPA 3.7 | > > | In the screen shots accompanying this proposal, you can see the game pieces reflected in the board. My understanding is that with the new programmable shader support in Java3D?, it should be possible to implement this effect in the actual game. However, this would serve no real function other than to “prettify” the UI, and is very low on the to-do list. | | | | |
< < |
- Math 1A/1B First year calculus (Completed while in high school.)
- Math 2A/2B Second year calculus
- CIS 10A/10B Computer Science fundamentals (Completed while in high school.)
- CIS 11 Data Structures and Algorithms (Completed while in high school.)
- CIS 17 Java (Completed while in high school.)
- CIS 22 Assembly language
| > > | Tentative Schedule | | | | |
> > | The tentative schedule below is, well, tentative. As with all programming, there is no real way to know beforehand how long a project will take. I opted to include the “optional” features in this timetable; if I fall behind schedule, I will simply skip these features to deliver the project on time.
| Weeks 1 and 2 (May 23-June 6) | Basic interface, and Java2D? integration. At the end of this stage, it should be possible to demonstrate the basic UI principles of the application. |
| Weeks 3 through 5 (June 6-27) | Implement piece moving. This could get complicated, given that the pieces will have to move in a plane that is not parallel to the screen. In this stage, the groundwork will be laid for a playable game. |
| Weeks 6 and 7 (June 27-July 11) | Implementation of the chess rule set. When this is done, the game should be playable! |
| Weeks 8 and 9 (July 11-25) | Thought bubble messaging widget, busy animation, and themes. Hopefully, I should be able to badger the LG community into creating at least one default theme; otherwise I will have to whip up some meshes myself. |
| Weeks 9 and 10 (July 25-August 8) | AI or Internet play. I hope to able to find existing code that I can reuse for this; otherwise, I should be able to get something simple done in this time frame. Before I reach this step, I plan on polling the LG3D? community on whether AI or Internet play would be preferred, and go from there. |
| Weeks 11 and 12 (August 8-21) | If time is available, I will work on the reflections feature. Otherwise, I will focus on wrapping up unfinished code, cleaning the code base, and writing documentation. |
About me
I am a software engineering student transferring to Cal Poly San Louis Obispo next fall. I have a special interest in UI design. I can be reached at afishionado@gmail.com.
Work experience
September 2003-June 2004 Math Lab Assistant Santa Rosa Junior College Supervisor: Dan Walton Phone: 707 527-4708
Duties: Assisted JC students with computers and computer programs.
Other computer experience
I programmed in C++ for a year and a half before switching to Java for most of my work three years ago. I am familiar with most of the J2SE? platform, including Java3D?, but am most familiar with the AWT and Swing toolkits. To date, I have not actually written any code for Looking Glass, but have read the tutorials and studied the API documentation, and do not expect any major surprises.
I created the CAS open source project as an independent study class last summer. I completed it with a mentor who was mostly unfamiliar with the technologies I used, and while teaching myself Java3D?. The project was an exercise in creating a UI that is very attractive and usable. You can check out the code to see that it is clean and well documented. The change log is very detailed, and shows that I am capable of working with a schedule and being transparent about my progress.
I am familiar with Windows, OS X, and Linux desktop systems. I do almost all of my development on Linux.
I was team programmer for the 2005 and 2006 Mesa Robot competition at the Santa Rosa Junior College.
Related course work
Santa Rosa Junior College GPA 3.6
Math 1A/1B First year calculus (Completed while in high school.)
Math 2A/2B Second year calculus
CIS 10A/10B Computer Science fundamentals (Completed while in high school.)
CIS 11 Data Structures and Algorithms (Completed while in high school.)
CIS 17 Java (Completed while in high school.)
CIS 22 Assembly language
CIS 49 Special studies (Implemented CAS.) | | | UC Berkeley summer session 2004: | |
< < |
- CS61A? Structure and Interpretation of Computer Programs using LISP
| > > | CS61A? Structure and Interpretation of Computer Programs using LISP
I will transfer to Cal Poly next fall.
Credits
Special thanks to Sean Day for letting me “borrow” his chess models for the images accompanying this proposal. (I still have to get new models for the actual program!) | | | | |
< < | Current
I am currently taking a summer class- CIS 49 Special studies in computer science, at
Santa Rosa Junior College, where I have recently completed my first year as a full time student.
Proposed project: A 3D file browser
Ideas and description:
The traditional metaphor of paper files and manila folders, while cute, does not accurately describe the workings of modern file systems. A user interface should make the concepts of nested directories, and directories containing files, visually intuitive. I intend to do this by leveraging the 3D environment and completely doing away with the traditional view of tiled icons and “one folder at a time” displays. I am considering two alternate designs for the file browser. They are very similar, and it might even be able to implement both and allow the user to toggle between them.
The first is inspired partly by the Grokker interface. Each directory is represented by a transparent sphere, with all the files and directories below it represented as spheres suspended inside it. Figure 1. The nested files and directories could be arranged in a ring just inside the surface of the outer sphere. The ring could be arranged in a plane perpendicular to the viewer's line of sight so all would be visible simultaneously (a “top view”), or in a horizontal plane, which could be rotated like a lazy-susan to bring different files forward (a “side view”). A “top view” would give the user a nice overview of the directory's contents. Figure 2. A “side view” would always have one file in front that would be larger and therefore easier to click. It would also allow files that are “in back” to be silently removed from the display and replaced with others as the user scrolls; this way, a user would only see, say, five files at a time, reducing clutter, while scrolling through the contents of a directory with fifty files. If a sub-directory is selected, the outer bubble would “pop” and disappear, and the selected bubble would enlarge to take the place of the original sphere. This process would be reversed to go up a level.
The alternate layout would place files inside the directory sphere, but not sub-folders; each sub-directory would be represented by a rod extending down from the sphere, ending with another sphere surrounding the files contained in that directory. Figure 3. The result would emphasize the tree nature of a file system, that sub-directories are “below” their parent directories rather than “inside” them, and the system would visually take on a cone-like shape with the root directory on top; the structure could be rotated to access different directories. This design would make sub-directories more visible (you wouldn't have to peer inside of colored spheres to see your directories), but may not be as intuitive to users as the idea of folders being “inside” each other.
Deliverables:
- A three-dimensional file browser that offers usability completely absent in traditional 2D file browsers.
- A FileChooser3D? component.
- An service for 3D applications to associate themselves with file types, and associate 3D object-icons with file types (we can do better than 2D icons!). (If a 3D application is not associated with a type, the browser should fall back on the native OS's icon and default application.)
Timetable:
- Late June: Orient to the Looking Glass API and finalize application design.
- July: Create basic functionality.
- Early August: Create FileChooser3D? and file type binding service.
- Late August: Fix bugs and wind down.
| > > | All the mock images were created with POV-Ray 3.6.1. | | | |
|
<<O>> Difference Topic
WilliamTracy
(2 - 14 Jun 2005 - Main.afishionado)
|
| |
| META TOPICPARENT | name="WebHome" |
| |
> > | William Tracy
2140 San Antonio Drive
Santa Rosa, CA 95405
Birth date October 9, 1986
Phone: 707 578-3159 e-mail: afishionado@gmail.com
Occupation: Student of Computer Science at the Santa Rosa Junior College | | | | |
< < | -- Main.afishionado - 05 Jul 2004 | > > | Work experience | | | | |
< < | I am William Tracy aka A'fish'ionado. | > > | September 2003-June 2004
Math Lab Assistant
Santa Rosa Junior College
Supervisor: Dan Walton Phone: 707 527-4708 | | | | |
< < | I am a college student who lives and breathes computer programming. My first language was QBasic. Then I moved on and worked in C++ for a few years. In the spring of '03 I learned Java and have been hooked ever since. Nothing will make me touch QBasic again.  | > > | Duties: Assist JC students with computers and computer programs. I have experience with: math programs, Word, Excel, Photoshop, and OS X. | | | | |
< < | I am working on a few closed-source projects of my own, and have just started the open-source (LGPL) No Exceptions project at http://noexceptions.dev.java.net. Hopefully someone will find it useful. | > > | Other computer experience
I programmed in C++ for a year and a half before switching to Java for most of my work two years ago. I am familiar with most of the J2SE? platform, but am most familiar with the AWT and Swing toolkits. I have not worked with 3D programming before, but have worked with the DOM XML API recently, and expect the tree-based Java3D? scene graphs to be similar.
I created the NoExceptions and CAS open source projects, and have contributed to the SkinLF project.
I have worked with, Windows 98, Windows XP, jEdit, KWrite, Kate, GEdit, Mozilla, Firefox, OpenOffice.org, Linux (SuSE? and Debian), KDE, Gnome, WindowMaker?, Fluxbox, Enlightenment, Emacs, and Vi.
I was team programmer for the spring 2005 Mesa Robot competition at the Santa Rosa Junior College.
I have also upgraded memory, modems, and CD drives in the past as well as removed a virus.
Related course work
Santa Rosa Junior College GPA 3.7
- Math 1A/1B First year calculus (Completed while in high school.)
- Math 2A/2B Second year calculus
- CIS 10A/10B Computer Science fundamentals (Completed while in high school.)
- CIS 11 Data Structures and Algorithms (Completed while in high school.)
- CIS 17 Java (Completed while in high school.)
- CIS 22 Assembly language
UC Berkeley summer session 2004:
- CS61A? Structure and Interpretation of Computer Programs using LISP
Current
I am currently taking a summer class- CIS 49 Special studies in computer science, at
Santa Rosa Junior College, where I have recently completed my first year as a full time student.
Proposed project: A 3D file browser
Ideas and description:
The traditional metaphor of paper files and manila folders, while cute, does not accurately describe the workings of modern file systems. A user interface should make the concepts of nested directories, and directories containing files, visually intuitive. I intend to do this by leveraging the 3D environment and completely doing away with the traditional view of tiled icons and “one folder at a time” displays. I am considering two alternate designs for the file browser. They are very similar, and it might even be able to implement both and allow the user to toggle between them.
The first is inspired partly by the Grokker interface. Each directory is represented by a transparent sphere, with all the files and directories below it represented as spheres suspended inside it. Figure 1. The nested files and directories could be arranged in a ring just inside the surface of the outer sphere. The ring could be arranged in a plane perpendicular to the viewer's line of sight so all would be visible simultaneously (a “top view”), or in a horizontal plane, which could be rotated like a lazy-susan to bring different files forward (a “side view”). A “top view” would give the user a nice overview of the directory's contents. Figure 2. A “side view” would always have one file in front that would be larger and therefore easier to click. It would also allow files that are “in back” to be silently removed from the display and replaced with others as the user scrolls; this way, a user would only see, say, five files at a time, reducing clutter, while scrolling through the contents of a directory with fifty files. If a sub-directory is selected, the outer bubble would “pop” and disappear, and the selected bubble would enlarge to take the place of the original sphere. This process would be reversed to go up a level.
The alternate layout would place files inside the directory sphere, but not sub-folders; each sub-directory would be represented by a rod extending down from the sphere, ending with another sphere surrounding the files contained in that directory. Figure 3. The result would emphasize the tree nature of a file system, that sub-directories are “below” their parent directories rather than “inside” them, and the system would visually take on a cone-like shape with the root directory on top; the structure could be rotated to access different directories. This design would make sub-directories more visible (you wouldn't have to peer inside of colored spheres to see your directories), but may not be as intuitive to users as the idea of folders being “inside” each other.
Deliverables:
- A three-dimensional file browser that offers usability completely absent in traditional 2D file browsers.
- A FileChooser3D? component.
- An service for 3D applications to associate themselves with file types, and associate 3D object-icons with file types (we can do better than 2D icons!). (If a 3D application is not associated with a type, the browser should fall back on the native OS's icon and default application.)
Timetable:
- Late June: Orient to the Looking Glass API and finalize application design.
- July: Create basic functionality.
- Early August: Create FileChooser3D? and file type binding service.
- Late August: Fix bugs and wind down.
| | | |
|
<<O>> Difference Topic
WilliamTracy
(1 - 05 Jul 2004 - Main.afishionado)
|
|
> > |
| META TOPICPARENT | name="WebHome" |
-- Main.afishionado - 05 Jul 2004
I am William Tracy aka A'fish'ionado.
I am a college student who lives and breathes computer programming. My first language was QBasic. Then I moved on and worked in C++ for a few years. In the spring of '03 I learned Java and have been hooked ever since. Nothing will make me touch QBasic again.
I am working on a few closed-source projects of my own, and have just started the open-source (LGPL) No Exceptions project at http://noexceptions.dev.java.net. Hopefully someone will find it useful. |
|