This is a modified scenario from here.
Karen Forrester teaches 10th grade physics. As she begins to prepare for tomorrow's class, she sees that her lesson plans include teaching her students about [insert a description of the concept which is taught by using ice melting as an example].
She remembers a computer simulation she put together last year to demonstrate this concept visually to her students. To create the simulation, Karen used an application called uAgentsheets which she had downloaded from an object repository site she found on the web. In particular, the uAgentsheets simulation she found consisted of ice agents which have the following properties: ice exposed to air will melt into water, and ice next to water will melt into water. So by plotting these ice agents on a uAgentsheets worksheet, Karen was able to demonstrate the rate at which ice melts over time.
Karen decides that this year she would like to add a more quantitative component to the simulation so that the students can relate the rate of the ice melting to a mathematical equation. She decides to create a graph plotting the number of ice agents vs. the number of water agents on the y axis and the passage of time on the x axis. Separate colored lines would then connect the points, comparing the decrease in the number of ice agents vs. the increase in the number of water agents over time.
Having decided what she would like the graph to look like, she now turns her thoughts to the best way to actually create it. She returns to the object repository where she originally found the uAgentsheets application and begins searching for a tool which would enable her to graph the data from the simulation. After searching throughout the objects on the site, she finds a Grapher object which inputs (x,y) coordinates and graphs them on a grid.
In order to create the graph, however, Karen realizes that she would have to run the ice melting simulation, jot down the ice/water ratios as it runs, and manually enter the numbers into the Grapher tool. And for every variation of the simulation she might want to run, she would have to recreate the graph in the same way. Karen wonders if perhaps the numbers reflecting the rate of the ice melting could be extracted from the uAgentsheets simulation as it runs and automatically fed into the Grapher tool. Although she herself is not a programmer, she knows that the community of people surrounding the object repository web site includes people who are. [Might want to include a more detailed description of the site and what it's about here.] She again returns to the web site to track down someone who might be able to give her some insight as to how she could tie the uAgentsheets and Grapher objects together.
Without the "virtual Apparatus framework, the above manual process would be tedious or Karen has to seek help outside. However, after checking the applets, she was delighted to find that both are "virtual apparatus"-enabled. She used the vaInfo() command to query the two applets. She found that ice/water ratios was an exposed property. She also found that the grapher objects also support input of points via an exposed method.
Karen searched the web repository for a timer Applet. She used the time events generated by the timer applet to trigger a reading to the uAgentsheets ice/water ratio. The returned value is passed to the grapher tools. Bingo, Karen was able to quickly compose a new simulation from components downloaded from the web.