Trip Report
SIGGRAPH 1996
1996 ACM Computer Graphics Conference New Orleans, Louisiana
Commentary by:
Michael L. Davis
michael@swfm.com
My comments on my commentary [meta commentary] are enclosed in brackets []. I attended the conference with Cornelia Stinchcomb (Neli).
The conference took place in New Orleans from Sunday, August 4 through Friday, August 9 at the convention center. The convention center is a couple of blocks from the French Quarter and is next to the RiverWalk shopping center complex along the Mississippi river.
There were about 30,000 attendees. The male to female ratio was about 4 to 1. We did not see anyone we knew there. We got there a few days early [it was cheaper!] and got a chance to look around. We had a conference passport which allowed us to attend any course, paper, panel, ... everything. I estimate that there were about 7,000 people who attended the courses, and about 7,000 people who saw the papers and panels [much more than I expected].
Maybe 10-20% were programmers and the rest were some kind of graphics artist, graphics hardware engineer, or graphics content developer. I believe this skewing to be responsible for the lack of technical detail in the papers, panels and courses [however the proceedings still seem to be aimed towards techies]. Video cameras were allowed in the exhibition but not in the papers, panels or courses.
The events to see were courses, papers, panels, applications, technical sketches, animator sketches, applications(demos), digital bayou (demos), art show, and the exhibition. Many of the events ran concurrently and it was often difficult to choose between from 2 to 4 [out of at least 10 possibles] very interesting but simultaneously held events [and it takes 10 minutes to walk from one side of the convention center to the other]. However there was only one paper presented at a time until one session during the very last day. Presenters now go to great lengths to create videos which describe in great detail how and why their software works. A lot of the papers presentations had animations about how the code supporting the paper worked and what it did [very well done, too].
Notable Events
The notable events at this SIGGRAPH were:
* The Leroy/Hanrahan paper on LightFields
* The number of papers from Microsoft Research (using SGI workstations for the most part) vrs. those from Workstation companies
* The amount of work being done on autonomous figures
* The constructing of 3D models from photographs,
* The announcement of the Talisman video card specification/design.
* Information visualization is a hot topic
* More buzzwords: (synthetic video, synthetic audio)
* Many companies were hiring: SGI, Dreamworks and Pixar (both had a booth dedicated to this purpose) and other, less well known companies.
* It seemed to me that VRML and the WWW were taken for granted as the present/future and did not generate much excitement.
* Java was mentioned but it was not really ubiquitous like VRML and the WWW.
* I learned alot about humans: about the fovia, about the uh-huh factor, about the brains internal multimedia cache buffers.
* Creating autonomous characters is/will be a new craft/art-form.
* Coolest T-shirt (that I can remember): An SGI shirt that said: "Attitude Inside". Notable mention: "Will 3D Model for Food".
* All of the course notes, proceedings and even ordinary books had their pages curled by the humidity.
* The Digital Bayou was a number of connecting rooms filled with demos. The rooms had very little lighting and there was fish-netting strung everywhere and it had kind of an eerie feel to it.
* There was a Startup Park on the exhibition floor that had a number of desks with computers on them with one or two people giving demos. A number of these startups were showing VRML modeling tools.
* There were walkways above the convention halls in which the exhibition was going on and it was fun to look down and see it in it's glory all at once.
TWA
Sucks.
The Hotel Situation
We (Neli and I) stayed in 4 different hotels (Sheraton, Le Meridian, La Quinta, Hilton Riverside). Because of the lack of hotel rooms for a large conference of 30,000 and because we sent our registration in on the last day we were unable to book our stay in a any other way. The Sheraton was the best of the lot but we only stayed there one day. La Quinta was located in Slidell, a city 30 minutes away from the convention center, which was where the SIGGRAPH housing booked us and which was where we would had stayed without Neli's [Thank you Neli!] massive efforts to get us into local hotels.
The French Quarter
There are lots of French-speaking people. It is expensive to eat there.
Very fancy antique shops [anyone for a nice marble-topped parlor table for $40,000?]. Lots of chandeliers. The French Antique shop has very nice fireplace mantle pieces [from $12,000 to $45,000; if you think you have too much money, go there, you will no longer]. The best shop was M.S.Rau Antiques (800.544.9440) that had a large selection of mechanical music boxes [probably more than 20, but again: $12,000 to $40,000] and a very large architects table [~8ftx16ft, lots of inlay work, probably _not_ overpriced at $95,000]. There are probably about 25-30 nice stores in a 4 block radius. There were a few art galleries but nothing special.
Bourbon street was a spectacle. Approximately a 12 block semi-cordoned off street full of galking tourists lined with bars, night clubs and strip joints. Each place BLASTS music as loud as possible and places a person outside to ring people in and at places along the street you can hear 3 bands equally well and it blends into one large noise. There were approximately 2 jazz, 1 country, 2 blues 2 funk and maybe 10 fusion bands. This activity was present only on Bourbon street and starts about 8:00pm, really starts going about 10:00pm and we did not stay later to see what happens [courses and papers started at 8:15. Yeah, we are wimps and probably should have hung out to see the madness].
The French Quarter and the convention center is in the big city. It is dirty and smelly. Garbage is piled out on the sidewalks, water is dripping off of the buildings onto the sidewalks at random, it smells like pee and vomit and cigarettes. There are often unsavory characters [who make Boulder CO's transients look healthy and sober] just hanging out staring at people. Alcohol is available everywhere at any time [even inside the conference!].
[I find myself attracted (galleries, music, looser attitude towards sexuality) and repulsed (dirty, dangerous, too much drinking) at the same time].
The Food Situation
Fish. Lots of it. But I don't eat them so we found 1 Indian, 1 vegetarian and 1 Chinese restaurant (with one vegetarian dish) in the French Quarter. We later found a couple more Chinese and one Indian restaurant north of the Quarter but the neighborhood was somewhat more intimidating.
-------------------------------------------------------------- Sequence of Events: --------------------------------------------------------------
Saturday:
Registration opens at 7:00pm. We get there about 7:20. It is packed. We get out of there around 9:00 or so. We each get about 5-6 course notes, the proceedings, visual proceedings, CDROMs, t-shirt, watch, coffee cup and a nerf-frisbee. Spent the rest of the evening trying to figure out what to see and do the next day [this takes awhile!]. This was to remain the pattern for each evening. Planning much more ahead than the next day is just too overwhelming.
Sunday:
Courses start at 1:30pm. We both attend the Information Visualization class.
Monday:
A day full of courses. The course reception in the evening (8-10pm).
Tuesday:
Last day of courses. The exhibition opens at 10:00am. Electronic theater from 6-8pm.
Wednesday:
The keynote speech. Then the papers finally start. The papers and panels reception from 8-10pm at the Mariot.
Thursday:
Exhibition closes at 3:00. We rent a car for our one night stay in Slidell.
Friday:
Last day. Mostly papers to see. Start on our 8.5 hour trip home. Arrive home at 2:30 am. Sam the cat is quite hungry. So is Neli.
-------------------------------------------------------------- Keynote: --------------------------------------------------------------
Marc Levoy received the Computer Graphics Achievement Award for his Volume Rendering work (volumes rendered directly from sampled data without first creating an intermediate surface representation).
Douglas Adams (Author of "Hitchhikers Guide to the Galaxy", et. al.) presented the keynote speech. The keynote speech:
[Pacing up and down - springing from one topic to another].
Now working for Digital Village doing a game called Starship Titanic.
In reference to the new artistic mediums springing up: Each medium has it's own grain: an artist need tools that allow them to work with the particular quality of the grain.
In reference to the way one has to work around performance and functionality problems: Make the most of the limitations ... while we still have them.
Starship Titanic mixes the Myst and Doom fly-through techniques: one half of the ship in one way, through the human's eyes, and the other half is through the computer's eyes. [i.e. Myst scenes are beautifully rendered ahead of time, Dooms scenes are not as beautiful but are rendered in real-time allowing the user to move anywhere in the scene].
Radio has the best renderer, computers are next: want direct mind to art connection.
Talked about a new project to put a movie version of Hitchhiker's Galaxy on IMAX, which will be a sequence of 40 minute files/chapters. Looking for interested parties (i.e. funding, worker bees). email DNA@tdv.com.
Called for people to support Apple; they did good things in the past, made some silly and some [awfully stupid - I forget the British term he used...] mistakes, but do we want the _other guy_ to completely take over?
Evolution of what a computer is: * Calculator (VisiCalc) * Typewriter (WordStar) * TV, with a typewriter in front of it (Games) * Brochure (WWW)
Computers model all of these tools. They are essentially an extension of the human ability to model things.
Called for people to bug their hotel managers about getting, not phone dataports, but ethernet connections to the hotel intranet which is connected to the internet. "We want more bandwidth!" ala "I want my MTV!".
Talked about a survey which revealed how few people knew what made the seasons of the year. So we need a bumper sticker: "It's the axial tilt, stupid", or for Texans: "It's the axial tilt, stoopid". Said what was needed was a visualization tool that modeled the planets. That these modelers should in general:
present information->accept information/questions->present...
i.e. almost infinitely customizable through their user interface.
Reality -> filter (eyes, ears, ...) -> filter (mind's model of the world) -> us.
There are blank spots in our vision where the eye's optic nerve attaches to the retina.
Eye's move in spurts: these spurts can be anticipated? Eyes focus on one very narrow range of view (using the fovia). A computer could possibly generate information on a screen only in the small area where the user is actually looking. This screen would be indecipherable to anyone else if the computer placed non-related info in other areas of the screen.
The computer extends our senses: Takes data that is invisible and makes it visible. For example: when designing a road that winds through some hills, one needs to minimize cost, windyness, and hillyness. One could devise a system that provided a joystick with haptic feedback that provided a force against any movement of the user's hand in proportion to an increase in cost, windyness or hillyness. Then the user could just 'feel' their way to a solution.
"Human evolution is at an end". This occurred when we invented tools. * When move to somewhere colder, you don't wait for your genes to evolve. * We adapt the environment to suit ourselves * If you are stupid you don't die (you're put in high office) * Extended our physical reach * World is now more complex than our monkey brains can understand. * Putting together facts that we do know, we created a machine to extend the mental domain, our mental 'reach'. * Ability to model things, try them out, simulate, create them.
Machines will not be alive but a 'skin', a new self-organizing environment or eco-system in which we live:
Was: nature->us Will be: nature->machines->us
[Some people think this new eco-system will appear to be much like raw nature where humankind spent most of the last multiple millions of years; living in a tamed (ala nanotechnology, ubiquitous computers) but natural environment.
-------------------------------------------------------------- Courses: -------------------------------------------------------------- [Course notes are available on CDROM and some specific course notes in hard copy form were purchased by Neli and I].
------ COURSE #5: Design and Application of OO 3D Graphics and Visualization Systems ------
This course is about the implementation of various existing 3D graphics systems and their advantages and disadvantages.
[I did not see this, unfortunately, but picked up and read the course notes the next day, as this is the stuff I'm _really_ interested in and actually relates to what I do].
Object-Oriented Visualization - Bill Lorensen, General Electric
Examples of Systems * AVS * Iris Explorer * Data Explorer Examples of Toolkits * The Visualization Toolkit (VTK) (Available at your local bookstore) * Inventor * AVS Express * LYMB (GE's toolkit)
Design Issues - Ken Martin, General Electric * Data Management (Data flow) * Graphics Abstractions (Abstract interfaces) * Object Design Issues (Class hierarchies)
System Architecture I - Will Schroeder, General Electric * Systems - Inventor - VTK * Models - Object model - Execution model - Data model * Strengths and weaknesses Inventor Strengths Performs well with OpenGL Flexible, powerful suite of objects Database file format widely used Weaknesses State-traversal violates encapsulation OpenGL specific No data visualization support VTK Strengths Renderer independent Flexible, powerful objects suite (including visualization) Interpreter (Tcl) Purer OO model Weaknesses Abstract models impact performance In-memory data problem for large datasets
Similar object models Diff execution methods (scene-graph traversal vrs. data-flow execution) Inventor richer graphics system VTK richer visualization system VTK interpreter striking difference
AVS/Express: O-O Perspectives - Jean M. Favre, Swiss Center for Scientific Computing
* A visual programming environment * An interpreted language for Rapid Prototyping * An Object Manager * A GUI builder * Development tools to integrate user code * Applications * Kits User Interface Data Visualization Image Processing Graphics Display Annotation and Graphing AVS5 Compatibility Database
+ Connections between parameters of one object and another + Each object manages it's own execution + C, C++ API
[More detailed information follows in the course notes].
Jean M. Favre: presents some class hierarchies for data visualization Thomas D. Citriniti, Rensselaer Polytechnic Institute Presents the object-oriented nature of scene graphs for VRML and of the structure of VTK. The course finishes with papers on VISAGE, VTK and a visualization architecture by Favre.
------ COURSE #8: Information Visualization ------
This course covered many, many types of graphs and visualization techniques, especially those relevant to data on the WWW (as opposed to visualizing scientific data).
Information visualization consists of applying the methods of scientific visualization to data besides scientific. See also the Information Visualization '95 conference proceedings [see the IEEE Web site (http://www.computer.org). Neli picked up a copy at the exhibition].
ChairPerson Nahum Gershon, The MITRE Corp.
Most work consists of the following sequence:
InfoSphere->filtering->few documents->making sense of the few documents->[human makes a decision?]->agents->work accomplished.
Stephen G. Eick, Bell Labs
His company's position is to extract info from large databases in order to gain competitive advantage. Discussed basic problems with network graphs: when one puts unrelated nodes far apart then the long lines that connect them take up lots of real estate which implys that their relationship IS very important, etc.
* Multidimensional scaling layout: move unrelated things apart * Node and spring layout: move related things closer together
Problems with large network graphs is their growth is as n^2 along one axis and as 'n' along the other axis.
Stewart Card - Xerox PARC
Displayed a fisheye view for documents: a 2D array of pages of a document where a whole page was visible in front and partial, angled views of other pages were at the sides, tops and corners.
Webbook: packaged URL nodes into a book. One can quickly 'ruffle' through pages in this book. The turning of pages is animated and looks realistic. Searches on this book return another book with the results. The rest of the screen had an perspective view of a bookshelf on the left and some other books were positioned off in the distance.
Showed a calendar interface that always showed the day's schedule, the week, the month, the year, and the decade simultaneously in one window. It animates the change of focus from one 'view' to another. The current view is always largest.
Talked alot about rating interfaces using a [hueristically-arrived-at?] COKCF (Cost of knowledge characteristic function).
Talked about how the eye works: there is a small area, right behind the cornea on the retina, called the 'fovea', that is for very high resolution vision, with 200 times more information for the same area. This implies that humans look at one, relatively small spot at a time, the rest being peripheral and that then implies that user interfaces should be the designed to take this into account.
i.e. "Focus with Content" - fisheye views, desktops, ...
Exploting the Dual Perception System to manage: * Attention * Geting more info on display * Where to explore next * Building the whole picture out of pieces
The Human Dual Perception System is:
AUTOMATIC PROCESSING CONTROLLED PROCESSING (Focused, concentrated) --------------------- ------------------------- Peripheral Fovial Parallel Serial High capacity Low capacity Can't inhibit Can inhibit Fast Slow Load independent Load dependent Unaware of processing Aware of processing Target pops out Target does not pop out -------------------- ------------------------- EXAMPLE DISPLAY CODE EXAMPLE DISPLAY CODE -------------------- ------------------------- Spatial position Text Color Numbers
There are features that humans will always process first, then second, ... Example: [in the sample picture] we will ALWAYS look at the large orange cooler, then the orange drink, then the very large face, in that order.
GRAPHICAL FEATURES THAT ARE AUTOMATICALLY PROCESSED -------------------------------------------------- Number of items Terminators Direction of motion Line orientation Intersection Binocular luster Length Closure Stereoscopic depth Width Color 3D depth cues Size Intensity Lighting direction Curvature Flicker
A chart is also included which shows how well each of these attributes are suited to displaying quantitative, ordinal, and nominal quantities (i.e. how well color represents a quantity like fuel efficiency of a car).
The graphical query that can be handled in a single, minimum unit of time is: 2 plane variables, 1 retinal variable (X, Y, color). 4 or fewer items can be counted almost instantly.
The MODEL HUMAN PROCESSOR: Visual image store: 200 [70 - 1000] msec 17 [7 - 17] letters Auditory image store: 1500 [900 - 3500] msec 5 [4.4 - 6.2] letters [notes?]
Cognition: 70 [25 - 170] msec Motor: 70 [30 - 100] msec Perceive(see/hear): 100 [50 - 200] msec
This implies that ~1/10 second is an important timemark: actions that take longer than this will be perceived as 'taking time' by the user (and will upset their 'stride', or 'stream of consciousness').
Animation transition times (between scenes) should be about 1 second (the "uh-huh protocol" frequency - the time that, in a conversation, if one speaker pauses the other is supposed to say 'uh-huh' in order to 'Ack'knowledge that they have heard and understood).
------ COURSE #10: Procedural Modeling and Animation Techniques ------
??? This subject usually covers modeling fire, clouds, water, marbled surfaces and animating figures.
The first presentation was made by I don't know who and the subject matter covered does not appear in the course notes. But it was a very interesting talk and presentation.
A MAC program was displayed which had a simple rendering of a girls face and a number of sliders (9) to the left and a number of columns of buttons below. The sliders on the left controlled various the emotions that the face can display. These comprise the dimensionality of the expression of the face and are:
* Brow * Blink * Eyes in (i.e. left/right) * Eyes up * Lower lids (to portray suspicion) * Sneer * Smile * Ooh * Aah
The above expressions often move more than one muscle at a time. For example the smile moves both the jaw and lips.
The buttons below the animated face were hard to see but some are:
Emotion Lips * angry * relaxed * happy * puckered
The interface allowed zooming in and out on everything and when zooming in on a button the button (which is to the left of the button label) turns into a little graph that can be directly manipulated with the mouse. For example, he zoomed in on the 'pucker' button, changed the bell shaped curve to be steep and the girl did a quick kiss, made it wider and she her kiss lasted for a few seconds. Set it to be (almost) random and she appeared to be talking (actually used a noise function mapped to ~8 variables of the face using 'correct' statistics to make it look right [I got the impression that it is easy to make it look wrong and kinda disquieting).
This talk (and many, many others) was targeted at the graphics animators in the audience, indicating that they were likely to be using this kind of software soon. Whereas keyframe animation is:
still image -> interpolated images -> still image
with the frames in-between automatically generated by the software procedural animation is:
image -> layered procedures -> image
with what is happening between specified procedurally (for example: 'walk', 'smile' and 'wave goodbye to the baby for 3 seconds').
Proceedural Models of Geometric Detail John C. Hart, Washing State University
Proceedural geometric instancing:
* Uses 'hooks' in the scene specification * Similar to an L-System but storage problem alleviated by on-demand evaluation performed at time of instantiation * Similar to shading languages (Renderman) (shade trees Cook[1984]).
Talked about reusing massive numbers of instances in order to save calculation and storage time (O(log n) instead of O(n)). For example he showed a whole lawn made from one blade of grass. Used cyclic, recursive instancing (i.e. 4 blades form a group, 4 groups form a bigGroup, 4 bigGroups ...)
Future: The instances: * Need to know where they are in world coordinates when evaluating their procedure * Need to know how big they are in device coordinates in order to support LOD (level of detail) restrictions * Need to be able to calculate their bounds without having to execute all the procedures (i.e. be redrawn). * Need to be able to calculate their bounds when moving (animating) or when have behaviors.
Proceedural Models of Natural Phenomena Ken Musgrave, George Washington University
Talked about "How to Build a Planet". Topics to cover: * Terrain * Atmosphere * Texture * Rendering with LOD * Practicality (want to cruise planet at game-playing speed
Talked alot about how procedural models which do not model reality but look good are "ontogenetic" models and 'OKAY' and about how modeling consists of mapping simple concepts to complex domains and about how he worked for several years with Mandelbrot. But the talk and paper do present a VERY detailed analysis of how to model just about every detail of nature.
Used studies by DeCartes on rainbows (how there is darkness between the bands, the angle of the arc, ...). About how, for the human eye, at great distances there is loss of contrast and reds become blue-ish and greens -> red-ish [I think that is how it works. It has to to with Raleigh scattering]. Send him email to get this presentation in postscript at: musgrave@seas.gwu.edu. He is co-author of the popular "Texturing and Modeling" book by Ebert et. al. He has joined a computer game company to render planets in real time. Says Kajiya (Microsoft) told him this would be possible on a PC in about 18 months.
Proceedural Modeling with Artificial Evolution Karl Sims, MIT
What he does is create: * Proceedures for navigating procedures * Evolve 2D pictures * Evolve/mutate lisp equations ("mod x(exp((abs y)*46))"->) * Process input images * Process 3D Objects * Genetic morphs of 1 equation to another * Video of genetic morphs of one object to another was presented in the popular video: "Primordal Dance" * Evolving Creatures * Uses recursive limit procedures (cyclic instance calls with an upper limit on the number of recursions) * These procedures can be displayed pictorially using techniques presented in '94 Siggraph paper, pgp. 15-22) * Also: * Tweek node parms probabilistically * Make new nodes at random * Tweek connection parms probabilistically * Add or remove connections probabilistically * Garbage collect (remove) unused nodes (that are not being used by the creature) * Creatures are evolved (they get to live if they do well) to perform some task like walking or swimming * Humorously the creatures find bugs in the system and take advantage of them. * Found a way to push on themselves to move (i.e. getting free energy) * Used potential energy at start to 'fall down' and somersault to success. * Creature's genes were composed of primitive elements: +, -, sin, cos, blur, warp, noise, ... [All of this is '94 paper]. * Creatures are a graph of nodes (software controllers) and blocks (3D body parts). * Neurons: composed of oscillators, intergators, differentiators wave generators, ...
Question: Did you limit the complexity somehow (i.e. even on the Connection machine super parallel computer which this was done on it would eventually grind to a halt). Answer: Yes. When evolving the 2D images, used methods to predict the approximate amount of compute time (i.e. used the length and complexity of the lisp equations). And when evolving creatures the number of blocks was limited.
[See also Course #36, which contains reprints of papers on 2D picture evolution (Siggraph '91) and on evolving 3D creatures (Artifical Life Proceedings '94)]
------ COURSE #31: Practical 3D User Interface Design ------
Practical 3D User Interface Design Dan Robbins
The lecture should have been titled: Process of the User Interface Design for Microsoft 3D Movie Maker.
I did not see this paper but read the notes (slides). It is very CHI-like and interesting from a user-interface designers perspective. Also brings up problems unique to 3D.
All of the notes for this course are very interesting from a CHI perspective, especially for those who think the 3D wave is just beginning [like me].
------ COURSE #36: Artificial Life for Graphics, Multimedia and Virtual Reality ------
Artificial Plants Przemyslaw Prusinkiewicz, University of Calgary
[This guy is "Mr. L-System"]. An addition to the L-system 'language' has been made to add an evaluation function, ?, that can be used to embed decisions in the language (e.g. "?P(x, y)", make a decision as a function of current position). This new evaluation function technique has now been used to: * Add automatic budding and pruning capability (i.e. to confine plants to cubes or other, more fanciful, 3D volumes, like seashells and helixs) * Add the affects of insects * Make plants flower from the top down (during animations) which is what they do in nature
Their system architecture is of form:
Plant Environment ====================== ========================= Reception<----------------------Response Internal Process Internal Process Response ---------------------->Reception
The L-System function: "?E(...)" is used to communicate with the environment. For example: How much light does this leaf get? * Lots => Add new branches and new leaves * Some => Add new leaf * Little=> Drop leaf * None => Drop branch Future: * Model whole ecosystems * Plant evolution
See http://www.cpsc.ucalgary.ca/projects/bmv/... for free code that lets a person play with some of this.
Questions: [He is very knowledgeable about his field]
Q. How is the problem of branches running into branches handled? A. * It has a low probability so not much of a problem * It will run out of light and go away * It is a curse in flower petals (some pictures of roses were manually 'fixed'). * Ignored for now * Eventually the environment will let us know there is an intersection Q. Can this be used to model the propagation of memes? The growth of derivatives in financial markets? ... A. L-Systems are mostly used for geometrical domains, for ex: they have been used to model sea-shells and molecules.
Artificial Evolution for Graphics and Animation Karl Sims
[Similar to a previous course. I hit the exhibition]
Behavioral Animation and Evolution of Behavior Craig Reynolds
[Did not get back in time to see this. Talked about his 'Flocks, Herds and Schools].
Artifical Animals Demetri Terzopoulos, University of Toronto
This was about modeling fish. This is a very exhaustive research, model, simulation and animation of fish. The architecture looks like:
Brain->send message "swim left"->motor controllers->muscle contractions
* Habits (are inherited) * Current Mental state: * Hunger * Libido * Fear
Using these tools an animator will not be a puppeteer but an photographer (e.g. the system does the work of making them move). A very, very complete model. For example:
* It models the fovia of the fishes eyes (i.e. the fish will move their eyes (and therefore body and swimming direction) to put prey directly in front). * Fish learn how to swim * Fish eat food and other fish * Fish swim to/from things * Fish can learn (i.e. hit a beach ball with fin by jumping out of water) * Fish learn to swim by learning the periodic oscillating motion that real fish use.
Artifical Humans in Virtual Worlds Daniel Thalmann, Swiss Federal Institute of Technology, Switzerland
Modeling Humans: Software is basically:
Forever For each Actor Get state based on scene For each Actor Execute action based on state
Uses inverse kinetics that takes into account the center of mass. Can make autonomous virtual humans: * Follow a cube through a maze. * Play tennis with a real human * Play tennis with another autonomous virtual human * Walk around in park talking to each-other * Referee a tennis game * Can move around in (video of) real room, casting shadows and interacting with 3D obstacles
By being autonomous it will be easy for the "average programmer" to use.
Interactive Autonomous Agents Pattie Maes, MIT
Pattie Maes was unable to attend and instead a co-worker, Bruce M. Blumberg, bruce@media.mit.edu, who works with her and wrote the software gave the talk instead. Both worked on the ALIVE system.
Using behavior for models makes sense, models: * Know what they are doing * Know what they are feeling * etc.
In contrast, Toy Story was modeled by artists rendering each frame using 3D models. 'Woody' had: * 700 degrees of freedom * His face had 200 degrees of freedom * His Mouth had 50 degrees of freedom (i.e. the software that they wrote for Woody had 700 parameters to mess around with). Very laborious. Solution: want things with behavior * For animations * For VR * For science/knowledge
They wrote and use the Hamsterdamm toolkit. One of the key insights was that entities should be persistent when trying to achieve a goal, but only for the right amount of time, then they should give up and try something else. [Presented a paper at last years SIGGRAPH: "Arbitration between motivations"]. Also added a boredom factor to help in this matter. Used alot of the work done in Ethology - the behavior of animals [though, all of this seemed relevant to humans as well]. Talked alot about implementation; for example, to determine whether two behaviors could occur at the same time a table was created:
Motor Skills | Degrees of Freedom --------------------------------------------------- Walk |o|o|o|o| | | | | | | | | | | | | --------------------------------------------------- Sit |o|o|o|o| |o|o|o| | | | | | | | | --------------------------------------------------- Look at | | | | | | | | | | |o|o|o| | | | --------------------------------------------------- Wag tail | | | | | | | | | | | | | | | |o| ---------------------------------------------------
This table is for: Silas T. Dog, one of their virtual test subjects.
Future: * Smart avatars avoid walls * Animals that learn from other animals
-------------------------------------------------------------- Papers: --------------------------------------------------------------
Modeling and Rendering Architecture from Photographs
This paper presented a technique by which photographs of a building are used to 1) generate a 3D model of the building and 2) texture map it. I.E. from a number of photographs (12 is a goodly number) of a building, one can use this technique to generate a computer model that allows one to 'fly' around the building to view it at any angle. Useful for historical buildings which no longer exist, or to create a 3D building from Monet paintings.
View Morphing
This paper presented a technique by which one can morph between 3D shapes. The example was of two Mona Lisa paintings, one of which was the reflection of the original. The morphing process showed Mona moving her head from left to right, which looked better than the similar 2D morphing process.
Light Field Rendering - Marc Levoy, Pat Hanrahan Standford
[This was the important paper of the conference, at least with respect to changing a fundamental graphics paradigm].
This paper presented a approach by which one thinks of 'images' not as light bouncing off of 3D modeled objects but as a 5D wave function of light. I.E. at any point in space the light coming in to that point completely describes what can be seen and this light can be described as a color along a ray at a position (x, y, z) and and direction (theta, phi). The paper describes a technique by which images are represented as 2D slices of a (simplified) 4D function. Using this method, inward or outward facing video clips can be used to recreate objects and environments that can be smoothly flown through (this is similar to Apple's QuickTime VR but allows for smooth transitions between frames). The look-from point or look-at point must be fixed.
Future: * Light fields as primitives in graphics libraries. * Re-thinking of light in graphics in general * Planer arrays of cameras would allow individual viewers of TV to move viewpoint around without really moving the cameras
Demo: www.graphics.stanford.edu runs on Windows 95
The Lumigraph - Steven J. Gortler et. al. Microsoft Research
This was very similar to the last paper. Even the reduction to a 4D function and parameterization of this function was similar. The difference seems to be that this system recreates the objects as a texture map on a volume reconstruction and then generates the image from these objects in a traditional manner whereas the Levoy paper goes right from light field to image. This paper also presented a number of techniques for interpolating the images between different views.
<Others>
There were a number of papers on reducing the polygon count of various 3D models. They all try to preserve image quality to within a specified range. One paper reduced a human face to ~3 planes and then texture-mapped that.
There were quite a few papers on articulated figure motion and how to optimize the calculations. The one from Microsoft talked about semi-automatic transitions between movements of the figure (i.e. the transition between standing up and walking) and about a motion-expression DAG (directed acyclic graph) language. One of the more interesting papers [to me] follows:
Limit Cycle Control and its application to the Animation of Balancing and Walking - Joseph Laszlo et. al. University of Toronto
This paper presented a technique by which one can represent the periodic motion present in various movements as a loop and then apply perturbations to this for effects or to maintain the steady-state nature of the loop in the event of disturbances from the environment. The authors are trying for a general solution using these cyclic motions through the state space of some object. A biped has two control variables and 2 limit cycles. Future: using motion capture data to generate the limit cycles and/or to perturbate the data.
SKETCH: An interface for Sketching 3D Scenes - Robert C. Zeleznik, et. al. Brown University
This paper presented a 2D gestural language which specifies various 3D shapes, constraints and layouts. [Neli liked this paper alot. I missed it.]
Disney's Aladdin: First steps toward Storytelling in Virtual Reality Randy Pausch et. al. University of Virginia
This paper presented user data about a VR system installed at the Annaheim Disneyland. There were 45,000 flyers (of the magic carpet) questioned. The questionaire revealed: * People rarely turn their head, looking straight ahead (like TV). They can be taught however, to look from side-to-side, and like it when they do. * Motion sickness did not seem to be a problem. * Men and women liked the game about the same amount. * 1st experience reduces IQ in half (the experience is overwhelming, this could be a side-effect of the newness of the of the technology and wear off as people get used to it). * About 1,000,000 people watched on monitors but it had to be experienced for people to 'get it'. * Animated actors need to react to the user in order to appear 'real'. * Used hand-painted textures for the scenes (so some special techniques had to be used in order to allow the 4? reality engines to load all of those texture maps when the user entered a new scene). * The artists who painted the textures made them kind of dark and forbidding but when the computer graphics people added more light sources the artists said "if I wanted a light there I would have drawn a light there".
IMPROV: A System for Scripting Interactive Actors in Virtual Worlds Ken Perlin et. al. Media Research Laboratory, New York University
[See also course notes]. This paper presented the architecture and an animation language to assign behavior and actions to articulated figures.
The Virtual Cinematographer: A Paradigm for Automatic Real-Time Camera Control and Directing - Li-wei He, Microsoft Research
This paper presented a technique by which camera shots can be automatically placed and controlled purely by software. Film is a collection of scenes which are a collection of shots. This system encodes a number of rules-of-thumb for these camera shots and sequences of camera shots and moving camera shots. Each user has own Virtual Cinematographer to which they can give hints about what they want to see. Future: automatically seek out interesting backgrounds (behind the actors) for the shots.
Comic Chat - David Kurlander, Microsoft Research
This paper presented a technique by which comic book-like panels are generated automatically for online-communications. The user may choose one of a number of avatars(characters) to use (if they are using Comic Chat) or are assigned one at random. The avatars are positioned correctly in each panel by the system. The user may choose one of a number of emotion types and strengths from by using an 'emotion wheel'. When the user type emoticons (:-)), 'I', 'you' 'IMHO', etc... the system automatically causes your avatar to smile, point to itself, point to the other, point to itself, ... respectively. The title page has a list of main characters. The comic book moves to the next panel when the panel is filled with characters and balloons. Jim Woodring was the consultant cartoonist and his was the style is used for the backgrounds and characters. The presenter talked about modifying the background to, say, the map of the state of Ohio when you say you are from Cleveland but was concerned about bandwidth issues. Can direct your words to one or more participants. The layout is done locally (wispers can be private, i18n issues handled locally, ...). Narration and thought balloons are supported. Texutal codes are prepended to the beginning of the usual IRC text protocol. Future: More comic styles, more comic elements, apply it to interactive fiction, ...
Demo at: http://www.research.microsoft.com/comicchat.htm
Talisman: Commodity Realtime 3D Graphics for the PC Jay Torborg, James T. Kajiya - Microsoft
This paper presented a design for a graphics card that is geared towards quickly rendering 3D game-like graphics. It does this by: 1) Relying on spatial and temporal coherence (i.e. most of the time the scenes don't change much from one frame to the next and so don't have to be completely re-rendered). 2) While the video buffer (composite layers) are being scanned at video rates (~75 Hz) affine transformations are applyed to the objects in real-time as they are read to alter them to compensate for any changes since the last frame 3) Textures and objects are stored in the video buffers in compressed form in order to reduce the bandwidth requirements of the rendering pipeline (the compressed data can be compressed and decompressed in real-time).
"Performance rivaling high-end 3D graphics workstations can be achieved at a cost point of two to three hundred dollars".
The problem: The SGI Reality Engine 2's graphics pipeline as a bandwidth of ~10,000KB/sec. A PC graphics card has a bandwidth of ~200KB/sec. As the paper states: "SGI has nothing to fear from evolving PC 3D accelerators, which utilize traditional 3D pipelines, for some time to come".
This architecture requires that objects go on different layers in the video buffer if they want different Z values. It is unclear how to specify this Z value or when a single objects span Z values. It is up to the application to keep track of what is on what layer (MS says it takes only about 50% of the CPU power of a Pentium 90 to depth sort the 3D database required) and that this will be only about 10% of the CPU power of the host machine by the time the board ships. DirectDraw is used to interface to this card. They are working on a 3D graphics database API [Direct3D's Retained Mode? What about Template Graphics's OpenGL Inventor they are shipping with Visual C++ 4.2?]. Admitted to some visual problems with visual 'snapping' when objects are re-rendered after a number of frames of affine transformations. They have been working on this with hardware video card manufacturers for about a year. The programmer specifies which buffer an object goes into in DirectX by using 'begin scene' and 'end scene' methods.
[It is my belief that if a program conforms to the requirements of this card that it will indeed get high-performance graphics. But at what cost in flexibility of content and kludginess of code?].
Visual Models of Plants Interacting with Their Environment Radomir Mech and Przemyslaw Presinkiewicz, University of Calgary
[See course notes].
Flow and Changes in Appearance Julie Dorsey, et. al., MIT
This paper presented a method by which objects can be 'aged' by simulating the flow of particles over objects as if they had been rained upon for many years. An extensive analysis is made of what kind of affects the flow of water causes in various kinds of materials. Examples were presented of the algorithms affect on a brick wall and on some statues.
Superior Augmented Reality Registration by Integrating Landmark Tracking and Magnetic Tracking Andrei State et. al. , University of North Carolina at Chapel Hill
[I did not see this presentation or the related Technical Sketch, but I bet it was cool].
Image-Guided Streamline Placement Greg Turk, et. al. University of North Carolina at Chapel Hill
This paper presented techniques concerned with drawing and placement of streamlines (used for the visualization of 2D vector fields). Starting with tufts (or streamlets) which are short arrows in the direction of the field located on a rectangular grid. Then optimize by perturbing the position of the tufts to improve score where the score is calculated to optimize the even distribution of the gray level of all stream lines.
Problems with tufts: * No fine detail * Endpoints and arrows interrupt flow.
Add optimization pass number 2 which adds operations (move, add/delete, shorten/lengthen, combine) and using random descent to further optimizes the layout. Display magnitude of vectors by using spacing, width, intensity, color, opacity. A multiresolution streamline was presented which had very think lines for gross detail and fine lines for fine details (must zoom in to see these well).
Future: * Use for name placement in maps. * Animation of vector fields.
Scale-Dependent Reproduction of Pen-and-Ink Illustrations Mike Salisbury, Davis H. Salesin, et. al., University of Washington
This paper describes a technique by which high-fidelity pen-and-ink illustrations can be rendered at any scale or resolution. This process adds half-tones images by using pen-and-ink strokes. Discontinuities in original image are saved and used during scale to preserve image sharpness.
Rendering Parametric Surfaces in Pen and Ink Georges Winkenbach, Davis H. Salesin, University of Washington
This paper describes a technique to do what the paper title indicates. This and the previous paper are refinements of techniques presented over the last few years.
Painterly Rendering for Animation Barbera J. Meier, Walt Disney Feature Animation
This paper describes a technique that makes use of previous techniques that render images using paint-brush-like strokes and adds the ability to animate the objects (pan and zoom around them) without the strokes moving around ("getting the paint to stick to surfaces rather than randomly change with each frame").
[The last paper, we did not get to see it, but got to read it (and many others) while waiting for the various planes we used to get home].
-------------------------------------------------------------- Panels: --------------------------------------------------------------
<Overview>
Many of the panels were just position speeches by people about technology that is already well known to me (at least to the depth that they would be able to present it in a 20 minute speech). So many panels were a bust and I had to leave and find something else to learn. 7 were like this. 9 I did not get to see. The following panels were the ones I enjoyed.
VRML: Prelude and Future
http://vag.vrml.org http://vrml.sgi.com/moving-worlds
Don Brutzman - moderator.
Gavin Bell - previously of SGI: VRML to follow same evolution as TV. Expect a few years of flying logos. Also said there is a Cosmo player that runs on a laptop?
Salim AbiEzzi - Microsoft: talked about ActiveVRML, whish is now called ActiveAnimation [http://www.microsoft.com/intdev]. Built-in support for audio, sprites.[This language is based on ML with extensions for time as an implicit type].
Andy van Dam: The VAG VRML process worked because: * Limited objectives * Great effort * Used already existing Inventor metafile format. Future: * Media integration (2D, audio, ...) * Networking, distributed capabilities * Database, world management, database updates * Behavioral modeling (which Andy thinks is more than just sending messages which is what Don suggests). VRML is a "modern display-list system". We need tools; we're not going to write in VRML. Need clip behaviors, clip models, clip art, ...
Mark Pesce: Read a story about a recent experience of his about getting lost in the woods and having to sleep in the wild overnight. His conclusion that those that think they know everything, can't, and so they should "sit down and shut up". [How this was related to the story is not clear to me].
Discussion: Mixing of ActiveAnimation and VRML. VRML explorer for Internet Explorer is written in Java. Microsoft is doing Java3D too. Andy thinks that sending vertices to a rendering pipeline is going to be replaced/augmented with lightfield techniques [so how does this relate to VRML? New VRML primitives to specify the light-field equations?].
Graphics PCs will put Workstation Graphics in the Smithsonian Pro: Michael Cox - S3, Jay Taborg - Microsoft Con: Michael Deering - Sun, Kurt Akeley, VP of R&D, SGI
This was a fun panel. I missed Michael Cox's position speech.
Michael Deering: Workstations: * Graphics are accurate * Reduce time-to-market * People are comparing 2 years in the future of the PC to what WS had 3 years ago. Jay Taborg: PC's: * Games will drive 3D graphics on PC to excel * 50,000,000 people buy a game each year * 1.3 Million Autocads licenses says CAD can be done on PCs Kurt Akeley: WS's * PCs are a commodity product * WS are a value added product * PCs are last with the latest technology * Both use same technology but different business models * PCs are ubiquitous, WS's lead
I did not keep track of who said what in the following, but it should be obvious whether they were in the affirmative or not. * Research is moving to PCs (12 papers vrs 4) * PCs are for games, WS for technology * Game graphics may so diverge from the ability to do CAD graphics that WS may indeed be required. * Q. How much of the market will PCs have next year? A. The same amount that Java workstations will have the year after that.<laughs> * People buy based on price-performance (price includes cost of crashes, training, throughput, reliability,,,). * Q. What platform has 30% more market share than Windows? A. Doom <laughs> * Java OS will run on wrist watches. Windows runs on Jay's watch right now. Q. What time is it? <laughs> * When will SGI have compiler upgrades at PC prices? <laughs> Kurt: A. Don't know. Michael(@Sun): A. When you buy a Sun <hisses> * Windows: Plug-and-Pray * WS have integrated hardware and software development instead of separate companies competing against each other. * Michael(@Sun): by 2020 graphics hardware will be able to completely saturate the human visual system. [What does this mean? But I can't wait to see what kind of graphics power it will let me play around with].
Questions ran for about an hour (15 minutes after they were supposed to be over). Someone did ask how many people in the audience used WSs. About 1/2 the people had already left but of those left about 70% raised their hands.
Springing into the Fifth Decade of Computer Graphics - Where We've been and Where We're Going
[The OldTimer's Club]
Carl Machover: Graphics is now a 50 Billion dollar business
Fred Brooks: In the future we will render pixels, not polygons. How long will we need a polygon as an approximating primitive? The PixelFlow machine renders 20 million polygons/sec => 1-10 pixels/polygon. If know depth of each pixel in a scene then one can now where everything will be when the viewpoint changes (except for occluded objects, animated objects, ...). In future we will take much more advantage of Plenoptic rendering: * 20 frames/sec when _viewpoint_ changes * < 20 frames/sec when _model_ changes (with some exceptions) * Don't have to re-render the whole scene every frame.
Ed Catmull: Historically: * Realism was first goal for graphics. Good or bad this got us to where we are today. They were really unsatisfied with the graphics looked like in those days. People should still be unhappy with what we can accomplish today - much more work needs to be done. * ARPA - government funding drove alot of graphics * Art - There is a difference between the ability to 'see' versus the ability to 'draw'. Art schools don't teach people so much how to draw as how to see what is present. People should be cognizant of what they can 'see' when creating. Syvan "Chase" Chasen: Lockheed had 'directed' research that had to accomplish something in a few years. Bob Dunn: [produced the CORE standard]: Graphics is 3 things: * Display + Presentation * Visualization/Objects/Behaviors * Access and Management of Data This then implies: * Platform will subsume more technologies (more functionality will come with the hardware and software platforms) * Graphs for management will be very important * Animated 3D analysis (info visualization) over very LARGE terrabyte datasets. * 3D animated gossip, shopping, travel * 3D animated for CAD (animate failures, and other things besides a perfectly working system).
Originally graphics people did: 1. Charts, then were 2. CAD operators, now 3. ? GUIs will get much more sophisticated. Bert Herzog: Time to Maturity: Visionaries say 2 years, Users say 20-30 years. This time includes development, test and production. Examples: SketchPad: 1961 CAD done: 1985
Visualization: 1960 (traffic flow) [Visualization done: AVS?]
Animated films: 1965,66 Toy Story: 1995 Andy van Dam: UIs should be: * full-duplex (not ping-ponging control back and forth between user and computer). * Computer should use/read facial expressions * Use both hands for input devices * Be communal, cooperative * Use agents to do things we are not good at VRML will be the next graphics standard and will be a BIG thing.
-------------------------------------------------------------- Electronic Theatre: --------------------------------------------------------------
The electronic theater was held in a very old, very ornate theater. (The Saenger theater). Accoustics and the sound system were excellent (and loud). Many of the clips were commercials and outtakes of movies. There was only one abstract art clip. The highlights were clips from the movie 'Joe's Apartment' and the Halloween '95 Simpson's episode (Homer gets trapped in the 3D universe and there are many 'in' jokes for us computer types [Homer says: 'Why do I feel like just standing here is costing millions of dollars per second?']. I also liked the clip describing Fibinocci and the golden mean.
The theater was within walking distance of the French Quarter so we and many others walked back and invaded the quarters restaurants.
-------------------------------------------------------------- Exhibition: --------------------------------------------------------------
The exhibition this year was about 10% book publishers, 60% 3D multimedia production software, 20 hardware vendors, 10% video production et. al. The booths most attended were SGI and SoftImage. Microsoft, Intel, and IBM were noticeably customer free. MetaTools had a counter where they were selling software and they had a quite a bit of business. Sun was noticeably (to us) not promoting their own stuff (Java workshop was not present, sales people told us to fill out a questionaire when we asked about upgrade policies). [Check their Web-site for upgrade information which was posted July 29].
Missing: PCs [_I_ didn't see any, just SGIs and one HP], PC video card venders (3 years ago there were LOTS). It could be that because most graphics artists and programmers use workstations that the PC crowds are writing off SIGGRAPH.
I got a demonstration of MET++, a multimedia framework built on top of ET++. I talked to Philipp Ackermann, the author of the book on MET++, [Developing Object-Oriented Multimedia Software, Philipp Ackermann, (c) 1996, [http://www.tiac.net/users/akpeters]] and it appears that 4 people got together 3 years ago and have been writing a great deal of software. They have very many demo applications running on this framework (3D modeler, WWW browser, a visual programming language, ...). I have yet to dump the code from the book's CD and see what it all looks like but the book, the framework and demo are very, very impressive.
-------------------------------------------------------------- Course Reception: --------------------------------------------------------------
We missed the parade of SIGGRAPHers down Canal street to the warf. Supposedly the street was to be blocked off for 15 minutes while this was going on. We were distracted on a (one of many) food finding mission.
The reception was on-board a ship that did not leave dock and could only hold about a half of the SIGGRAPH crowd at one time so there was a very large crowd waiting to get on. We had just had a nice Italian dinner so we just hung out on board watching the Mississippi for short while then left.
-------------------------------------------------------------- Paper and Panels Reception: --------------------------------------------------------------
At the Mariot. [There was what appeared to be vegetarian food].
-------------------------------------------------------------- Sketches: --------------------------------------------------------------
Interactive Modelling of Branching Structures Lintermann, University of Karlsruhe, Germany Deussen, University of Magdeburg, Germany
[p. 148, Visual Proceedings]
Uses a visual programming language to specify what kind and the shape and appearance of the plants that are generated. It is pretty much a dataflow graph with components of 'high functionality' (i.e. it only needs 5 - 8 icons for the samples given in the write-up).
The software is available as shareware at: http://www.greenworks.de
The Virtual Lego Village Paul Mlyniec, SmartScene Engineering, MultiGen Inc.
[p. 88, Visual Proceedings]
This product was being demoed at a prime location in the SGI booth on the exhibition floor, as well. It is a multi-player VR world where people can jointly build things with Lego parts. Parts can be stretched, snapped together, and painted with colors and textures. [It only appears to run on FAST graphics hardware].
Web Doc Browser
A visual display of a 2D cloud of points representing relationships between documents on the WWW. Specifying a keyword/subject will highlight the location in the cloud of points which represents the keyword. Can zoom in on topics. Points are colored (which represents some other variable like document size?).
Implementation: Assigns positive and negative forces between the points to allow the points to position themselves. A force is calculated by calculating what keywords are and are not present in a particular document and then assigning positive force towards documents with similar keywords and negative forces away from documents that have keywords that are 'known' to be opposite. Uses a full text search of documents to ascertain keywords. The presenter will not answer pointed questions about the weighting function used.
Visualization of the Web
The WWW is a collection of documents and (binary) relations. Noise (information that obstructs information gathering) increases at a faster rate than the information itself.
To address this tools have been created that display a visualization of the WWW.
Tools that visualize the link-structure --------------------------------------- * Harmony 3D rectangles in a graph that lies on a 'ground' plane stretching to the horizon. * Narcissus Spheres (sites) in 3D space linked together and having small spheres (web pages) surrounding them.
Tools that visualize the semantic relationships --------------------------------------- * Navigational view builder * VR-VIBE A triangle, each vertex of which represents a subject and inside of which is a cloud of points representing documents, points being closer to a vertex if they are more related to the subject that it represents.
The tool presented uses document-keyword lists, calculates a value of similarity, and displays an associate network. Uses a sparse display for global navigation of the space/WWW and a dense display for local navigation (i.e. a LOD methodology). This 3D network is laid out using a spring metaphor.
Can select an area in the graph and create a visual bookmark that appears as an icon below the display window and the icon's pictorial representation is of the area that the bookmark represents. Also the bookmark looks like a directional sign post in the display area. Clicking on the bookmark icon causes the display to pan smoothly to the bookmark location.
* Makes another network graph representing the query.
* Can also display the network of keywords of the documents.
* Can leave signpost to record where one has been. [I may have gotten the above signpost = bookmark description wrong].
Future: * Use this to navigate online documentation (and help files). * Also add the display of the Web's link structure.
This is at: cs.panam.edu/research/infovisualization.
-------------------------------------------------------------- The Bridge: --------------------------------------------------------------
This was the name of the area where the Siggraph 'Art' show was being held. Did not spend more than a few minutes here on my (circuitous) way to the restroom.
-------------------------------------------------------------- SIGGRAPH 1997 --------------------------------------------------------------
Los Angeles, August 3 - 8, 1997 - http://www.siggraph.org/s97