Open pixelzoom opened 3 years ago
If it's that far along, seems worthwhile to do the PhET-iO release. I'm wondering how the Game part is instrumented though? We will take a look in studio.
Instrumenting the game was straightforward. Each level has 2 Fourier series, answerSeries
for the answer to the challenge, guessSeries
for the users's guess. In Studio:
If you expand answerSeries
or guessSeries
, amplitudesProperty
shows you the 11 amplitudes for the 11 harmonics in the Fourier series. Or you can inspect the individual harmonics. For example, for answerSeries
in Studio:
@pixelzoom I haven't done an in-depth review of the tree, but the sim is generally looking great in Studio. I would be in favor of including PhET-iO in the 1.0 release.
The basic functionality of the game feels pretty good to me. I could see a client wanting more control over the game -- customizing challenges, changing the threshold for the RewardNode/Dialog. However, I think we could punt on that until it becomes an actual client request.
8/12/21 design meeting @arouinfar @kathy-phet @ariel-phet @pixelzoom
Let's try to publish the PhET-iO version.
Basic instrumentation is done. So this is ready for @arouinfar and @kathy-phet to continue the PhET-iO design process. I'll rename this issue to "PhET-iO Design" and assign to them.
FYI, https://github.com/phetsims/fourier-making-waves/issues/4#issuecomment-846256591 identifies some potential requirements, where @arouinfar said:
As far as I know, there isn't any general PhET-iO infrastructure in vegas, as we've never instrumented a game (build-an-atom excludes the game). Thinking generally about any game, a client might want to:
- Hide specific levels
- Change the condition for triggering the RewardNode (e.g. lower the threshold to 5 stars)
- Specify their own challenge, or at least have some way of ensuring all students get the same sequence of challenges
8/16/2021 @arouinfar @kathy-phet @pixelzoom had a design meeting on Zoom. We created GitHub issues for PhET-iO feature requests, and design work that needs to be done.
8/1/2021 Slack discussion @arouinfar @kathy-phet @pixelzoom
We decided NOT to include PhET-iO in the 1.0 version. As we got into it, the amount of work grew quickly. It was pretty clear that we'd need to push out milestones, possibly into November for 1.0 release. @kathy-phet pointed out that while the milestone for Fourier are flexible, there are other higher priorities.
So I'll wrap up the PhET-iO issues that I'm working on, put good notes in the issues, and defer those issues.
@arouinfar will also pause PhET-iO design, and put her notes in a GitHub issue.
Design review notes can be found in the PhET-iO design doc and comments are summarized here:
dialog.visibleProperty
(applies to all dialogs in the sim)dialog.closeButton.enabledProperty
(applies to all dialogs in the sim)dialog.closeButton.visibleProperty
(applies to all dialogs in the sim)discreteScreen.model.oopsSawtoothWithCosinesEmitter
discreteScreen.view.charts.amplitudes.amplitudeKeypadDialog.visibleProperty
discreteScreen.view.charts.amplitudes.amplitudeKeypadDialog.closeButton.enabledProperty
discreteScreen.view.charts.amplitudes.amplitudeKeypadDialog.closeButton.visibleProperty
discreteScreen.view.charts.sum.sumChartNode.autoScaleCheckbox.autoScaleText.visibleProperty
discreteScreen.view.charts.sum.sumChartNode.infiniteHarmonicsCheckbox.infiniteHarmonicsText.visibleProperty
discreteScreen.view.controlPanel.infoDialog.closeButton.enabledProperty
discreteScreen.view.controlPanel.infoDialog.closeButton.visibleProperty
waveGameScreen.model.level*.correctEmitter
waveGameScreen.model.level*.incorrectEmitter
waveGameScreen.view.level*Node.charts.amplitudes.amplitudesChartNode.amplitude*Slider.visibleProperty
discreteScreen.model.fourierSeries.harmonics.harmonic*.amplitudeProperty
waveGameScreen.model.level*.answerSeries.harmonics.harmonic*.amplitudeProperty
waveGameScreen.model.level*.numberOfAmplitudeControlsProperty
wavePacketScreen.model.wavePacket.centerProperty
pressListener.enabledProperty
or dragListener.enabledProperty
is false, the cursor should not be a hand on hover. Affected elements:
amplitude*NumberDisplay.pressListener.enabledProperty
discreteScreen.view.measurementTools.periodCalipersNode.dragListener.enabledProperty
discreteScreen.view.measurementTools.periodClockNode.dragListener.enabledProperty
discreteScreen.view.measurementTools.wavelengthCalipersNode
wavePacketScreen.view.measurementTools.componentSpacingToolNode.dragListener.enabledProperty
wavePacketScreen.view.measurementTools.lengthToolNode.dragListener.enabledProperty
discreteScreen.view.controlPanel.fourierSeriesSubpanel.soundLayoutBox.outputLevelSlider.visibleProperty
to false should also hide the min/max labels.phScale.microScreen.view.beakerControlPanel.separator
as an example.seriesRadioButtonGroup
should be instrumented.waveGameScreen.view.level*Node.feedback.smileyFaceNode
should have a visibleProperty
(frownyFaceNode has one).wavePacketScreen.view.controlPanel.componentSpacingSubpanel.componentSpacingText.textProperty
titleNode
don't appear to do anything, as the text is handled in a sibling. Let's uninstrument these:
wavePacketScreen.view.controlPanel.componentSpacingSubpanel.componentSpacingControl.titleNode
wavePacketScreen.view.controlPanel.wavePacketCenterSubpanel.centerControl.titleNode
wavePacketScreen.view.controlPanel.wavePacketWidthSubpanel.conjugateStandardDeviationControl.titleNode
wavePacketScreen.view.controlPanel.wavePacketWidthSubpanel.standardDeviationControl.titleNode
Additional Coments & Open Questions
enabledProperty
, including the eraser buttons, Show Answer, Check Answer, and New Waveform. Was this an oversight, or is there something different about these buttons?Status for 1/4/2022 quarterly-planning meeting:
Basic instrumentation has been done. It's unclear whether design is done, or whether there's implementation can resume. @arouinfar's notes are in https://github.com/phetsims/fourier-making-waves/issues/123#issuecomment-924389379.
@pixelzoom I would consider the design review to be complete. Change requests are summarized in https://github.com/phetsims/fourier-making-waves/issues/123#issuecomment-924389379 with game-specific requests in #144.
A PhET-iO version was not part of the plan for the Fourier 1.0 release. But the reality is that it's pretty much impossible (or very unwise) to do sim development without considering PhET-iO, and doing a fair amount of the instrumentation to test what you think you're doing. Consequently, I've been doing basic instrumentation of this sim as I've been implementing it. Because the sim has no dynamic elements that are instrumented, the instrumentation has been relatively straightforward, and I feel like the instrumentation is ~90% of the way there.
So... Is there any interest in including the PhET-iO version as part of the 1.0 release?
To help inform this decision, I would encourage @arouinfar and @kathy-phet to review the PhET-iO version (Studio, etc.) in master.