Psyneulink View, an infinite visual canvas for scientists to push neurosciences boundaries.
PsyNeuLink is an open-source, software environment written in Python, and designed for the needs of neuroscientists, psychologists, computational psychiatrists and others interested in learning about and building models of the relationship between brain function, mental processes and behavior. It was developed by the Princeton University. In order to expand its use and power, the team contracted MetaCell to build PsyNeuLink View, a WYSIWYG editor that works synchronously with the Python console.
When building a canvas-based UI for science, many interactions happen in a short amount of time. The user has to be able to build and iterate on models as freely as possible to give them full power on finding new discoveries. All those interactions lead to decisions. As lead designer and in collaboration with the client and scientists, we established user-centric principles for the UI:
- Principle 1: the user should always feel in control of the UI
- Principle 2: the user should not feel restricted
- Principle 3: the user should always be aware of the environment
Applying Principles to the UI
With these principles in mind, I split the decisions into two categories: the ones we have to make, and the ones the user has to make.
According to Principle 1, when the user should be able to make a decision, we have to give them the control. For example, when creating a node, the user has the control on where the node is created. There’s no assumed default position that could lead to creating a node out of the view.
Principle 2 implies decisions on our side, because the user has no control on how they feel. This way, we created an infinite visual canvas without any auto-layouts. Positions of each and every element on the canvas is based on what the user wants, not on what the UI is restricting.
Principle 3 drove our decisions on how to build the layout of the UI. Indeed, we added a hierarchy panel on the right side to let the user know exactly what elements are in the canvas. Also, we added a frame inside the canvas and around the elements when the user is inside a composition. On top of that, we added a permanent breadcrumb in the top-left corner for the user to have a reference point when they end up being lost in the canvas.
Giving freedom to the user, the line between mistakes and serendipity.
Giving freedom to the user in science is not just for the sake of building a "user-centric" design. On the one hand, the place of software in science is to support research without defining its contours. Because if we limit ourselves to the existing framework, the discovery of new ideas is directly impacted. On the other hand, it is by giving freedom to scientists that we trigger serendipity. Because sometimes, the new findings of scientists are also the result of chance.
By giving the user as much freedom as possible, we knew some things could go wrong. Some elements could end up being hidden by the mask of a composition, some elements could be free-standing in the canvas while it’s creating errors in the script. But we accepted that, and did our best to make sure that these things happened as little as possible. We listed what could go wrong, and either found solutions to avoid it, or found solutions for the user to find their way back. This is what I, as lead designer, imagined for a (really)-user-centric approach: giving full control to the user, and support them when things go wrong.
An infinite visual canvas for scientists to push neurosciences boundaries.