- Watch the demo first (click Run demo, either right after the start, or after pressing the ? button).
- Tool tips provide context-sensitive help (hover mouse over button for a second).
- Do not worry about trying out things. Back in the browser undoes the last change.
- The URL always contains the current state of the document. Save the URL as bookmark, or share it.
WaveWorkshop is a program for the visualization of coherent wave propagation in the plane. It supports punctiform exciters, finite and infinitely expanded line exciters, straight chains of exciters (e. g. for the demonstration of Huygens' principle), and the arrangement of exciters in regular polygons.
Using play (green triangle) and stop (red square), you can control the animation of the wave flow. After clicking one of these buttons, you can also set the frequency. When stopping, the current phase shift is displayed and stored (see below).
In the toolbar, you can select the type of the exciter to be added. The number of exciters per chain and the number of corners of the polygon, respectively, can be adjusted with the slider appearing. You can add exciters by clicking with the left mouse button once in the plane and drawing a line with the mouse, respectively.
Five buttons within each screen allow you to change the display between elongation (animated), amplitude, intensity and phase shift (animated) as well as complex vectors (animated; real part blue, imaginary red). With the red cross, you can close the view (except for the main view).
In the toolbar, you can select the type of screen to be added. The following options are available: segment, half-circular, rectangular with 2D view, and rectangular with 3D view. Click and drag to add a screen.
Selection / Modification / Adapt View
By selecting the mouse pointer in the tool bar, you can select and change exciters and screens. To do this, drag the objects. You can also set the exact properties of selected objects using the edit fields. Here you can, for example, change amplitude and phase shift. Use the red cross to delete exciters and screens. You can pan the view content by dragging the background. A double clicks zooms in, clicking the right mouse button zooms out. You can also use the mouse wheel to zoom. Alternatively, there are buttons with + and - at your disposition.
Settings / Doppler effect
Click the lambda button to access the settings ribbon.
Now you can adjust the wavelength, either by using the slider, or by entering the exact value into the input field.
Furthermore, you can set the medium movement.
Since the screens remain stationary relative to the exciters (so that the whole scene does not vanish from the screen quickly), this is equivalent to all exciters and screens move in the opposite way.
This demonstrates the Doppler effect nicely.
Another option enables the attenuation of the waves. When enabled, the intensity decreases inversely proportional to the distance to the exciter (except for the line exciters). To facilitate the accurate positioning of objects, the vertices can be snapped to an invisible grid. You can enable and set the grid stride here.
Using the export button in each view, you can download the respective view as a PNG image. So far, additional elements like the exciters and the other views are not exported, though (only in the 3D view).
Saving / Sharing
WaveWorkshop follows a new approach for storing the document.
All properties of the document are contained in the URL in the browser's address bar.
It updates with every change you do.
Since only the part after the # changes, which is responsible for the page-local addressing, the website need not be reloaded.
Saving and sharing a document is now very easy.
Just save the URL, e. g. as a bookmark, or by dragging it as link to a folder, and share the URL, e. g. by email or by posting it in a social network.
Don't be scared by the possibly lengthy URL.
Putting it back into some browsers address bar loads the document.
Bookmarks are not automatically updated, by the way, you have to add a new one or replace the old one, in order to save the latest changes.
An advantage of this storage scheme is that you can undo/redo implicitly by going back/forward in your browser.
And by copying the URL to another browser tab/window, you can easily duplicate a document.
To be able to keep the documents apart, you can assign a title to them, after clicking the Save button. This title will show up in the browser title bar, thus also in the task bar, and also be used when adding a bookmark.
The syntax of the URL is actually not that hard to understand, you might be able to generate URLs for specific purposes.
You can have multiple instances of WaveWorkshop running at the same time, either in different browser tabs, or even in separate browser windows (for example, to show them side by side). On the other hand, you can enable full-screen display for maximum space by pressing F11 in most browsers.
There is also an offline version available. Just unpack zip file and open the contained index.html in a compatible browser. If there is no compatible browser installed on your PC and you do not have administrator privileges, try Portable Chrome or Portable Firefox.
WaveWorkshop is a web application, it runs in your browser without installation.
In principle, it works with all kinds of devices on all kinds of operating systems.
Since it requires a high computing performance, it utilizes the WebGL interface of the browser. This interface is quite young still, not all browsers support it, but most of them do nowadays.
If WaveWorkshop does not work for you, watch a video of the demo instead.
- Chrome* (recommended, fastest), or its open-source variant Chromium*
- Safari on MacOS X from version 5.1 (before version 6.2 and 7.1 respectively, only after configuring it appropriately)
- Internet Explorer from version 11 (only for Windows 7 and later)
Android tablets and smartphones:
- Chrome* (recommended, fastest)
iPad, iPhone, and iPod touch:
- Safari from iOS 8
BlackBerry browser from version 10 and Windows Phone from version 8.1 might work as well, but are untested.* For these browsers I assume that you use the latest version.