PsychMetal is an open-source platform for visual stimulus presentation in psychophysics. Python, MATLAB and Octave interfaces on Apple Silicon Macs share a native Metal rendering engine with Python on iPhone. Develop a Python stimulus program on Mac and bring the same stimulus code to iPhone. PsychMetal Demos showcases this shared platform through bundled, interactive demonstrations.
Choose a demonstration, read what to look for, then tap Start demonstration. Rotate your device before starting to choose portrait or landscape.
A finger moves the pattern in interactive demonstrations. In Blob array, hold a spot to drag it and lift to leave it. The hidden-ring and Noise through a mask demonstrations use a second finger to switch between noise and stripes.
Tap with three fingers together to leave a demonstration and return to the menu. Demonstrations run for a limited time.
Blob array, Changing noise, and Frame timing include rapidly changing patterns. If flashing patterns are uncomfortable for you, skip these demonstrations or stop using a three-finger tap.
Blob array: compare the apparent flicker of spots with different frequencies. Labels show the intended frequency for the display’s measured refresh rate.
Drifting stripes: compare motion within soft-edged Gabor patches. Hidden ring: notice how motion reveals a boundary that can be difficult to see when still.
Diagnostic mode starts off. Turn it on to reveal the timing test and collect timing reports. Demos continue through missed refreshes without capturing frames. View last demo output opens the full printed output on a scrollable page. For accurate timing, stop Xcode debugging and launch the app from its home-screen icon.
This is an educational visualization app, not a calibrated clinical instrument. Display behavior varies across devices and settings. Software timestamps do not measure light emitted by the screen.
For help with the app, email keith@alumni.caltech.edu.
For bug reports and feature requests, visit the project’s issue tracker. Include your device model, iOS version, app version, and which demonstration you ran. Avoid including private information.
Built with the open-source PsychMetal toolbox. Version 0.7.1. Demos work offline; opening external support links may use the network.