phetsims / joist

Joist is the main framework for PhET Interactive Simulations. Joist creates and displays the simulation content, home screen, navigation bar, About dialog, enables switching between tabs, and other framework-related features.
http://scenerystack.org/
MIT License
8 stars 6 forks source link

Support for save/load #103

Open samreid opened 10 years ago

samreid commented 10 years ago

In https://github.com/phetsims/energy-skate-park-basics/issues/52 it was suggested to add some features of saving state to Joist.

patricialoeblein commented 10 years ago

I am not really sure how this works. I saved a playground situation and then tried to Load it. Can you provide steps for Saving and Loading. It seems like when I use the Navigate to URL, I don't really get to Navigate, but the last saved file is loaded. Using the Load feature doesn't appear to Load. I was originally thinking that the "Navigate to save Url" would let me name the files and chose where they are saved. thanks

samreid commented 10 years ago

Based on our recent conference, it seems like the most useful way of saving and restoring state would be through a link. So in the next version of ESPB I'll drop the "Save" and "Load" menu buttons. The way "Navigate to Save URL" works is that you set up a situation that you like and press "Navigate to Save URL" then you can copy/paste the URL from the browser address bar to share the state. So if you want to create a track and save it for later, then press "Navigate to Save URL" and then you can bookmark that address, or save the link in any fashion (e.g., copy paste to a text file).

The "Load" button was never implemented--instead the only supported way to load a file was to drag and drop it into the running sim.

One big advantage of Save/Load over URLs is there is no length restriction. But there are costs to getting Load dialogs to work in a nice cross platform way (wouldn't work well, say, for iPads).

samreid commented 10 years ago

In the above commit, I removed the save/load buttons from the PhET menu.

patricialoeblein commented 10 years ago

I wonder if I am looking at the correct version of the sim? http://www.colorado.edu/physics/phet/dev/html/energy-skate-park-basics/1.0.0-dev.27

Am I even supposed to be testing this feature? I like the idea of the url's only because I remember some problems with file type as we changed Skatepark and CCK. It seems like the URL would not only bring up the configuration , but also the sim in the aligned version? I don't know if this is really relevant anymore - I am sure you will figure out the best system.

samreid commented 10 years ago

I wonder if I am looking at the correct version of the sim? http://www.colorado.edu/physics/phet/dev/html/energy-skate-park-basics/1.0.0-dev.27

Yes, that's the latest dev version. I didn't publish version 28 yet (without save+load buttons)

Am I even supposed to be testing this feature?

In my opinion, this feature should only be used during testing for reporting bugs and we should remove this feature before making the sim public. It will require too much work to make it permanent + cross platform at this time. I am thinking features like this might be ready for the public at 2014 Q4 at the earliest.

patricialoeblein commented 10 years ago

Thanks for the clarification.

samreid commented 10 years ago

I removed the "drag to restore state" drop target above. We can restore it if/when we want to work on that feature again.

samreid commented 9 years ago

Save/Load features have been moved to the together repo, but we can still provide access to it through Sim.

pixelzoom commented 9 years ago

In 3/24/15 developer meeting notes, @samreid said:

KP: Save & Load may be public in the future (say 1+ years) but for now keep everything under proprietary repo together.js

samreid commented 9 years ago

This is far enough in the future (1+ years as of March 24), so I'm unassigning it.

pixelzoom commented 7 years ago

@samreid Can you please summarize the status of this issue, now that PhET-iO has some support for saving and loading state?

samreid commented 7 years ago

PhET-iO provides customizability, and save/load for specific simulations (such as Circuit Construction Kit), will be provided by custom logic in the simulation, which is leveraged by PhET-iO for state store/restore. Closing.

samreid commented 7 years ago

Eventually we should probably have reusable code/components for save/load. We may arrive there by implementing this for CCK then generalizing.

samreid commented 3 years ago

CCK save/load will be discussed in https://github.com/phetsims/circuit-construction-kit-common/issues/151, it is unclear whether that will use joist. On hold until there is progress in that issue.

pixelzoom commented 3 years ago

This feature was requested on 2/25/2021 in the "Developing Interactive Simulations in HTML5" Google Group, see https://groups.google.com/g/developing-interactive-simulations-in-html5/c/euMS7mLlKv8/m/KXbWLsNvBAAJ:

Bill:

I've looked through the various postings and, while I cannot find any reference to saving PhET setups (say, a circuit with 4 particular resistors and a battery of a particular potential) for use as a quiz, I remember seeing a discussion on how there was no way to "save" a setup of a particular sim. Is this still true?

Rather than having my students follow a set of not-always-clear instructions on building a circuit and then asking questions for discovery, I'd like to be able to post or link to an already created circuit. Is this possible?

@samreid

Thanks for writing. We have discussed the topic of save/load for Circuit Construction Kit in this GitHub issue: https://github.com/phetsims/circuit-construction-kit-common/issues/151

It is not currently possible and we do not have plans in the near future to add that feature. I'll add your remark about its usefulness and we will take that into consideration.

@pixelzoom:

To clarify... Are you interested in this feature in general for PhET sims, and/or for Circuit Construction Kit specifically? You gave any example that sounds like Circuit Construction Kit, but I'm wondering if your need is broader.

Bill:

I'd like to be able to "post" a setup to my Google Classroom for ANY of the wonderful PhET sims that I have "stage managed" or "set up". Right now we are doing the Potential and Kinetic Energy Skateboard sim, working our way toward an electric dragster hands-on project in a month or so.

@pixelzoom:

Thanks for clarifying Bill. Save/load of configurations is not generally supported at this time. It has been discussed in various contexts, and you're not the only one who has expressed a desire for this feature. I've forwarded your request to the PhET team, for consideration.

pixelzoom commented 3 years ago

If this feature is generally desirable (ie, not PhET-iO only), it seems worth investigating how to leverage the parts of PhET-iO that are responsible for saving/restoring state. Perhaps factoring those parts out so that they can be used by PhET and PhET-iO brand sims.

kathy-phet commented 3 years ago

Save/load may become part of a teacher customization feature package with some sort of small subscription with limited licensing, to help support our budget. But this would be down the road after most all sims have PhET-iO. For now, this remains not on our immediate plans.