GithubHelp home page GithubHelp logo

phetsims / waves-intro Goto Github PK

View Code? Open in Web Editor NEW
0.0 10.0 5.0 2.65 MB

"Waves Intro" is an educational simulation in HTML5, by PhET Interactive Simulations.

License: GNU General Public License v3.0

JavaScript 3.03% HTML 21.74% TypeScript 75.23%

waves-intro's Introduction

Waves Intro

"Waves Intro" is an educational simulation in HTML5, by PhET Interactive Simulations at the University of Colorado Boulder. For a description of this simulation, associated resources, and a link to the published version, visit the simulation's web page.

Try it!

Click here to run "Waves Intro".

Screenshot

Documentation

The PhET Development Overview is the most complete guide to PhET Simulation Development. This guide includes how to obtain simulation code and its dependencies, notes about architecture & design, how to test and build the sims, as well as other important information.

Quick Start

(1) Clone the simulation and its dependencies:

git clone https://github.com/phetsims/assert.git
git clone https://github.com/phetsims/axon.git
git clone https://github.com/phetsims/babel.git
git clone https://github.com/phetsims/bamboo.git
git clone https://github.com/phetsims/brand.git
git clone https://github.com/phetsims/chipper.git
git clone https://github.com/phetsims/dot.git
git clone https://github.com/phetsims/griddle.git
git clone https://github.com/phetsims/joist.git
git clone https://github.com/phetsims/kite.git
git clone https://github.com/phetsims/perennial.git perennial-alias
git clone https://github.com/phetsims/phet-core.git
git clone https://github.com/phetsims/phetcommon.git
git clone https://github.com/phetsims/phetmarks.git
git clone https://github.com/phetsims/query-string-machine.git
git clone https://github.com/phetsims/scenery.git
git clone https://github.com/phetsims/scenery-phet.git
git clone https://github.com/phetsims/sherpa.git
git clone https://github.com/phetsims/sun.git
git clone https://github.com/phetsims/tambo.git
git clone https://github.com/phetsims/tandem.git
git clone https://github.com/phetsims/twixt.git
git clone https://github.com/phetsims/utterance-queue.git
git clone https://github.com/phetsims/wave-interference.git
git clone https://github.com/phetsims/waves-intro.git

(2) Install dev dependencies:

cd chipper
npm install
cd ../perennial-alias
npm install
cd ../waves-intro
npm install

(3) Change directory to chipper cd ../chipper/, then transpile the code to JavaScript by running node js/scripts/transpile.js --watch. This starts a file-watching process that will automatically transpile new or changed files.

(4) In a new terminal/command prompt, start an http-server

(5) Open in the browser: http://localhost/waves-intro/waves-intro_en.html (You will probably need to modify this URL based on your HTTP port and relative path.)

Optional: Build the simulation into a single file

(1) Change directory to the simulation directory: cd ../waves-intro

(2) Build the sim: grunt --brands=adapted-from-phet. It is safe to ignore warnings like >> WARNING404: Skipping potentially non-public dependency, which indicate that non-public PhET-iO code is not being included in the build.

(3) Open in the browser: http://localhost/waves-intro/build/adapted-from-phet/waves-intro_en_adapted-from-phet.html (You will probably need to modify this URL based on your HTTP port and relative path.)

Get Involved

Contact us at our Google Group: Developing Interactive Simulations in HTML5

Help us improve, create a New Issue

License

See the LICENSE

waves-intro's People

Contributors

agustinvallejo avatar chrisklus avatar jbphet avatar jessegreenberg avatar jonathanolson avatar katiewoe avatar marlitas avatar phet-dev avatar pixelzoom avatar samreid avatar zepumph avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

waves-intro's Issues

User suggestion: allow adaptive sounds and speaker sounds to be independently activated

Thank you for including the adaptive sounds on your simulations. One minor thought: On Waves Intro - Sound PhET, it would be great if the adaptive sounds could be turned on and off independently from the "speaker" sounds. As it is, when you play the "tone" and the microphone's pressure vs. time graph is on, there's a lot of sounds happening at once, and I'd like to be able to distinguish between the model of the speaker and the actual speaker separately as opposed at the same time (but still look at the pressure-time graph).

Assigning to @jbphet for now.

Sim Primer

When the project prioritizes sim primers again, this sim will need one.

Seam in top and right edge of the pipe

The artwork for the homescreen icons looks great, but I noticed a "seam" at the top and right of the pipe. I realize this probably came from the original code that made this, but thought it would be good to clean up before publication:

image

@arouinfar can you please take a look?

User suggestions: NGSS standards

I have a few suggestions for that Waves intro, though, that could make it more useful, particularly as we try to use these simulations for virtual curriculum around NGSS standards.

I tried to order these from potentially the easiest to the hardest to implement:
For sound and light, could we have numerical values for the frequency? Students could use those to graph the data (along with wavelength) and find the speed of light/sound (this would be my top priority and the inspiration for this message)
The speed of light/sound could also change with an option to change the medium? Just 3 options, like air, water, and empty space could be cool, the sound of course wouldn't work in space...
In the 'light' section, a temperature sensor on the screen could also help relate the different energy levels of the different colors, which would allow for another experiment that students could design with this.
On the frequency slider, could we have infrared and ultraviolet waves that are not visible? That could help make it more clear that those are light also, just not visible light, but could still change the temperature.
Finally, and this seems least likely, but it'd be cool if at least the sound simulation had the opportunity to move the sound and experience the Doppler Effect. Doing it with light would be awesome too!

CT unable to find node from unique trail id

Shows up in general repos as well

waves-intro : interactive-description-fuzzBoard : unbuilt
https://bayes.colorado.edu/continuous-testing/ct-snapshots/1589958265229/waves-intro/waves-intro_en.html?continuousTest=%7B%22test%22%3A%5B%22waves-intro%22%2C%22interactive-description-fuzzBoard%22%2C%22unbuilt%22%5D%2C%22snapshotName%22%3A%22snapshot-1589958265229%22%2C%22timestamp%22%3A1589962342551%7D&brand=phet&ea&fuzzBoard&supportsDescriptions&memoryLimit=1000
Query: brand=phet&ea&fuzzBoard&supportsDescriptions&memoryLimit=1000
Uncaught Error: Assertion failed: unable to find node from unique Trail id
Error: Assertion failed: unable to find node from unique Trail id
at window.assertions.assertFunction (https://bayes.colorado.edu/continuous-testing/ct-snapshots/1589958265229/assert/js/assert.js:22:13)
at Function.Trail.fromUniqueId (https://bayes.colorado.edu/continuous-testing/ct-snapshots/1589958265229/scenery/js/util/Trail.js:957:17)
at PDOMPointer.updateTrail (https://bayes.colorado.edu/continuous-testing/ct-snapshots/1589958265229/scenery/js/input/PDOMPointer.js:97:25)
at Input.dispatchA11yEvent (https://bayes.colorado.edu/continuous-testing/ct-snapshots/1589958265229/scenery/js/input/Input.js:1024:38)
at Input.focusinAction.Action.phetioPlayback (https://bayes.colorado.edu/continuous-testing/ct-snapshots/1589958265229/scenery/js/input/Input.js:560:14)
at Action.execute (https://bayes.colorado.edu/continuous-testing/ct-snapshots/1589958265229/axon/js/Action.js:225:18)
at HTMLDivElement.<anonymous> (https://bayes.colorado.edu/continuous-testing/ct-snapshots/1589958265229/scenery/js/input/Input.js:733:30)
at Input.focusoutAction.Action.phetioPlayback (https://bayes.colorado.edu/continuous-testing/ct-snapshots/1589958265229/scenery/js/input/Input.js:612:33)
at Action.execute (https://bayes.colorado.edu/continuous-testing/ct-snapshots/1589958265229/axon/js/Action.js:225:18)
at HTMLDivElement.<anonymous> (https://bayes.colorado.edu/continuous-testing/ct-snapshots/1589958265229/scenery/js/input/Input.js:733:30)
id: Bayes Chrome
Snapshot from 5/20/2020, 1:04:25 AM

----------------------------------

waves-intro : interactive-description-fuzzBoard : unbuilt
https://bayes.colorado.edu/continuous-testing/ct-snapshots/1589958265229/waves-intro/waves-intro_en.html?continuousTest=%7B%22test%22%3A%5B%22waves-intro%22%2C%22interactive-description-fuzzBoard%22%2C%22unbuilt%22%5D%2C%22snapshotName%22%3A%22snapshot-1589958265229%22%2C%22timestamp%22%3A1589967413692%7D&brand=phet&ea&fuzzBoard&supportsDescriptions&memoryLimit=1000
Query: brand=phet&ea&fuzzBoard&supportsDescriptions&memoryLimit=1000
Uncaught Error: Assertion failed: unable to find node from unique Trail id
Error: Assertion failed: unable to find node from unique Trail id
at window.assertions.assertFunction (https://bayes.colorado.edu/continuous-testing/ct-snapshots/1589958265229/assert/js/assert.js:22:13)
at Function.Trail.fromUniqueId (https://bayes.colorado.edu/continuous-testing/ct-snapshots/1589958265229/scenery/js/util/Trail.js:957:17)
at PDOMPointer.updateTrail (https://bayes.colorado.edu/continuous-testing/ct-snapshots/1589958265229/scenery/js/input/PDOMPointer.js:97:25)
at Input.dispatchA11yEvent (https://bayes.colorado.edu/continuous-testing/ct-snapshots/1589958265229/scenery/js/input/Input.js:1024:38)
at Input.focusinAction.Action.phetioPlayback (https://bayes.colorado.edu/continuous-testing/ct-snapshots/1589958265229/scenery/js/input/Input.js:560:14)
at Action.execute (https://bayes.colorado.edu/continuous-testing/ct-snapshots/1589958265229/axon/js/Action.js:225:18)
at HTMLDivElement.<anonymous> (https://bayes.colorado.edu/continuous-testing/ct-snapshots/1589958265229/scenery/js/input/Input.js:733:30)
at KeyboardFuzzer.chooseNextElement (https://bayes.colorado.edu/continuous-testing/ct-snapshots/1589958265229/scenery/js/accessibility/KeyboardFuzzer.js:72:21)
at KeyboardFuzzer.fuzzBoardEvents (https://bayes.colorado.edu/continuous-testing/ct-snapshots/1589958265229/scenery/js/accessibility/KeyboardFuzzer.js:161:10)
at https://bayes.colorado.edu/continuous-testing/ct-snapshots/1589958265229/joist/js/Sim.js:263:27
id: Bayes Chrome
Snapshot from 5/20/2020, 1:04:25 AM

CT issue with the licenses for media types

waves-intro : build : phet
Failure to grunt snapshot-1555363946275/waves-intro:
Running "lint-all" task

Running "report-media" task
>> missing-file: wave-interference/images/waving_girl_256_aperture.png
>> not-annotated: wave-interference/images/waving_girl_aperture.png
Fatal error: There is an issue with the licenses for media types.�


Approximately 4/15/2019, 3:32:26 PM

Waves Intro master checklist

Waves Intro master checklist

Note: Interviews for this sim part of the main Wave Interference sim

Design

  • Sim folder and design doc created (Date: 04/02/2019)
  • Sim suggestions doc reviewed suggestions doc
  • Learning goals and standards identified (Date: 04/02/2019)
  • Design concept complete (Date: 04/02/2019)
  • Wireframes complete (Date: 04/02/2019)
  • Mockups complete (Date: 04/23/2019)
    • Mockups checked for colorblind and greyscale
  • Features for PhET-iO discussion
  • Interviews complete (Date: 12/11/2018)
    • Results reported to team
    • Notes pasted into design doc
    • Back-up of interviews
  • Lead designer "sign off" (Date: 12/09/2018)
    • Performance acceptable
    • Carefully review ?showPointerAreas
    • No new feature requests
  • Pre-publication items
    • Auxilary screenshots (up to 3 additional)
    • Accessories (keywords, categories, description, learning goals, related sims, NSDL)
    • Teacher Guide created, uploaded, and added to sim design folder
    • LoL icons for each screen created and uploaded to Drive
    • LoL metadata for each screen (description, vocab words, questions for before/after sim use)
  • Post-publication items
    • Share new features, design challenges, and treats with group!
    • Add to Edmodo
    • Add to Gooru (signed in as phethelp)
    • Deliver to Legends of Learning
    • Sim primer (create issue, publish ideally within 1 month of live sim)

Implementation

  • Repository created (Date: 3/30/2019)
    • Simulation added to responsible_dev.md
    • Use grunt create-sim in perennial (see --help for arguments) to create the repository structure
    • Collaborators added (Developer team, QA team, designers, etc)
    • standard GitHub label set applied
    • repository added to perennial/data/active-repos
  • Development started (Date: 3/30/2019)
  • Sim is "feature complete" (Date: 8/1/2019)
  • Code review completed (Date: 8/1/2019) phetsims/wave-interference#414
  • Pre-publication items
    • Main screenshot (read this) #8
    • Verify credits with lead (Team, Contributors, QA, Graphic Arts, Sound Design, any Thanks) #9
  • Published (Date: 9/25/2019)

QA

  • Dev testing started (Date: 07/16/2019)
  • Dev testing completed (Date: 08/06/2019)
  • First RC published (Date: 08/13/2019)
  • RC testing completed (Date: 09/18/2019)

Created as part of phetsims/wave-interference#361

User Reported Sound Issue

From a user, from 1-14-2021:
Test device
iPad
Operating System

Browser
iPad purchased APP
Problem description
My students are on ipads and there is no sound on the sound portion of this sim. Even WITH the play tone checked.
Steps to reproduce
We had covered that higher sound pitch = higher frequency (prior knowledge) so that worked for us, but had we introduced the topic with this phenomenon, it would NOT have worked successfully. I am on a mac and it plays here fine
Visuals

Troubleshooting information:
!!!!! DO NOT EDIT !!!!!
Name: ‪Waves Intro‬
URL: https://phet.colorado.edu/sims/html/waves-intro/latest/waves-intro_en.html
Version: 1.0.2 2020-02-25 08:14:53 UTC
Features missing: applicationcache, applicationcache, touch
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36
Language: en-US
Window: 1384x703
Pixel Ratio: 1/1
WebGL: WebGL 1.0 (OpenGL ES 2.0 Chromium)
GLSL: WebGL GLSL ES 1.0 (OpenGL ES GLSL ES 1.0 Chromium)
Vendor: WebKit (WebKit WebGL)
Vertex: attribs: 16 varying: 15 uniform: 1024
Texture: size: 16384 imageUnits: 16 (vertex: 16, combined: 80)
Max viewport: 16384x16384
OES_texture_float: true
Dependencies JSON: {}

I suggested finding the ringer and turning it on as this usually solves this type of problem. User replied:

We open the app. We run "Water" just fine. But when we move to "Sound"...nothing.
Without ANY adjustments on buttons, we can completely close (including swipe up and get it off of recent used) the app and restart it as if we've never been there before.
THEN we can immediately go into "Sound" and it will work just fine--tone is wonderful.

And continued with clarification:

  1. this was definitely more than one kid issue. I teach about 90 kids and this was the "normal" on our iPad today--meaning way more than half had issues. I don't install our school used apps (another dept) but we purchased the app during the summer and they were installed before school started (i.e. already on iPad when kids picked them up).
  1. no, this didn't "fix" it. If we leave sound and go to water and back, it is tone dead and same with going to light and returning to sound, it is tone dead.

I will attach pics from my iPad to show you what I see as the app and info.
image

I was unable to reproduce this on the iPad 6th gen iPadOS 14.3 test device.

Prepare a version for full sonification interviews

At today's sonification meeting, we agreed we need to prepare a version that can be used for student interviews. This means:

  • Addressing known bugs that would interfere with operation
  • Add query strings like so:

SR: I’ll create 2 query parameters. Default for light sound will be off. Default will be to show a checkbox.
KP: One version: light defaults off, controlled by checkbox
KP: Other version: light has no checkbox and light sound is always on

  • Maybe preliminary design team testing or dev testing to make sure things are stable for interviews.

@arouinfar said First week of August would be a good point for interviews.

Credits for 1.0

We are about to create the first RC for Waves Intro and I'd like to make sure the QA credits are up-to-date (as much as possible) before creating the RC. @KatieWoe can you please take a look and let me know if anything's missing or incorrect?

Missing visibility annotation for WaveMeterNode duckingProperty

Missing visibility annotation in WaveMeterNode.js

    // Turn down the water drops, speaker or light sound when the wave meter is being used.
    this.duckingProperty = new DerivedProperty( [ series1PlayingProperty, series2PlayingProperty ], ( a, b ) => {
      if ( a || b ) {
        return 0.3;
      }
      else {
        return 1;
      }
    } );

Final steps before publication of 1.0 (tone only)

At today's Waves Intro sonification meeting, @kathy-phet said she would like to publish 1.0 without sonification. Here are some steps I can think of that need to be done before publication.

If we don't get SHAs until the later steps, we will need to make sure master remains safe while working on sonification.

Assigning to @arouinfar to see if anything is left for design, and to move forward with the first few checkboxes.

User suggestion: air pressure tone

So, here’s my feature request. It’s in the “Waves Intro” sim.
Your sim includes a “play tone” option, which lets students hear the change in pitch and volume as they change the frequency and amplitude of the wave (which is awesome!).
The pressure meter lets students see the air pressure as the waves go by. They can visually see the doppler effect if they move the sensor toward the speaker while the continuous wvae generator is running. If you could include a tone generator on the air pressure meter, it would let students mess around with the doppler effect. There are certainly other ways to implement the same thing. But the thing I would like to see is a way to demonstrate the doppler effect with an audible tone.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.