Mice explore virtual worlds with a Raspberry Pi-powered VR headset

A team from the Schaffer-Nishimura Lab at Cornell University has stepped up their neuroscience and behaviour research with mouseVRheadset — a teeny VR headset. For mice.

Mice explore virtual worlds with a Raspberry Pi-powered VR headset
Mouse-sized display lenses mounted on a Raspberry Pi (left)
Render of the entire enclosure in use by mouse subject (right)

How does it work?

A Raspberry Pi 4 runs the Godot video game engine inside the headset, and the mice view the output through a dual-SPI display. Researchers created virtual scenes in Godot to test the ability of mice in various scenarios, such as avoiding VR cliffs and reacting to looming objects of various sizes coming towards them at different speeds.

example virtual world in Godot
An example of a virtual world created in Godot

Two circular display eyepieces, each covered with a Fresnel lens to provide a wide field of view, are mounted onto the Raspberry Pi. I Googled “Fresnel lens” for you and turns out it’s actually an interesting story. French physicist Augustin-Jean Fresnel developed the composite compact lens for use in lighthouses and it became known as “the invention that saved a million ships”. It’s these Fresnel lenses which create a fully immersive experience for the mice.

A custom 3D-printed case houses all the hardware, with additional pieces designed to angle the eye displays inwards to better fit a mouse-sized field of view.

Navigating virtual worlds

treadmill for mice
A render of the golf ball-esque treadmill with which the mice control their virtual environment

The mice are on a mini treadmill while they use the VR headset. Their movement on the treadmill controls their navigation of the virtual worlds they experience inside Godot. Optical sensors working with an Arduino Due microcontroller measure treadmill motion; the Arduino sends the motion data to the Raspberry Pi, then the Godot game engine alters the VR scene according to the detected mouse movements.

Help the research team

The research team invites bug and issue reports, and you can also start a discussion if you have ideas as to how they can improve this work in progress. If you’d like to deep-dive into the construction of the headset, the treadmill, or the software behind this project, check out the research team’s GitHub.

Print Friendly, PDF & Email

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Server Status

Aradippou Chat 1 Chat 2 Larnaca Limassol Nicosia

Chat Links

Official Links.

1. Chat 1.
2. Chat 2.

Alternative Mirror Links.

1. KiwiIRC 1.
2. KiwiIRC 2.

Other Web Clients.

1. IrcCloud.

Recent Posts

Related Posts:



Super Club Radio

Mighty Deals


CyIRC Tweets

Scroll Up
Fatal error: Uncaught WMAC\JSMin_UnterminatedStringException: WMAC\JSMin: Unterminated String at byte 1180: "+o.accessToken}}).then(e=>{if(!e.ok)throw e;return e});return a.catch(e=>{console.error(`Failed to logout chatrix session. deviceId: ${o.deviceId}`)}),a}})(); in /home/bszucbfe/public_html/wp-content/plugins/clearfy/components/minify-and-combine/includes/classes/ext/php/jsmin.php:215 Stack trace: #0 /home/bszucbfe/public_html/wp-content/plugins/clearfy/components/minify-and-combine/includes/classes/ext/php/jsmin.php(157): WMAC\JSMin->action(2) #1 /home/bszucbfe/public_html/wp-content/plugins/clearfy/components/minify-and-combine/includes/classes/ext/php/jsmin.php(96): WMAC\JSMin->min() #2 /home/bszucbfe/public_html/wp-content/plugins/clearfy/components/minify-and-combine/includes/classes/class-main.php(375): WMAC\JSMin::minify('(function(){"us...') #3 /home/bszucbfe/public_html/wp-includes/class-wp-hook.php(324): WMAC_PluginMain->jsSnippetcacher('(function(){"us...', '/home/bszucbfe/...') #4 /home/bszucbfe/public_h in /home/bszucbfe/public_html/wp-content/plugins/clearfy/components/minify-and-combine/includes/classes/ext/php/jsmin.php on line 215