PennController 1.9

PennController 1.9 is now available!

Newly created experiments on the PCIbex Farm come with it, and you can sync your existing projects with the master branch of to update your version of PennController.

Major changes from 1.8:

  • Most elements are now displayed as flex rather than (inline-)block by default
  • The commands .left, .center and .right no longer align the text itself, but the whole element instead
  • The Canvas command color now changes the background color of the Canvas element
  • The fullscreen command no longer makes Safari crash
  • The command audio.stop now releases the command audio.wait
  • The commands InitiateRecorder and UploadRecordings are now usable inside trials, just like SendResults
  • The EyeTracker element has been reworked and should now work out of the box, no longer requiring to upload PennElement_eyetracker.js to your projects
  • The Selector element now reports the order of its element in the “Comments” column of its lines in the results file (useful after a call to shuffle)
  • The command print now accepts an element as its single argument and will append to it the current element
  • There is now a self keyword that can be used inside callback and test commands
  • The Timer element has now been enriched with the commands pause, resume and set
  • Added a new standard command .scaling that will zoom in/out an element to have it fit the argument(s), which can be: a ratio (with 1 for 100%), a unit dimension (eg. “10vw”) or the page/screen (pass "page")
  • The Scale element can now present checkbox options thanks to the new command .checkbox (use as radio)
  • The MouseTracker element can now detect clicks: pass "click" as the first argument of callback to run commands on clicks, and pass "click" to log to report clicks (with the cursor coordinates) in the results file
  • Added the MouseTracker test command over which succeeds when the mouse is over the element passed as an argument
  • Added the EyeTracker test command score which succeeds when the tracker was calibrated with a score at least as high as the one passed as an argument (you can also pass a function that takes the score as its argument)
  • It is now possible to send your results in multiple steps during your experiment (just use SendResults multiple times): your results file will treat each request as if it were coming from a new participant, but it will only contain results for the trials that were not saved so far

Published by Jeremy

Researcher in semantics and pragmatics; Programmer of PennController for IBEX

Leave a comment

Your email address will not be published. Required fields are marked *