Spherical treadmill

In this design, a 3D-printed base distributes compressed air evenly to support a floating styrofoam ball, while two sensors measure the ball’s rotation speed on 2 axes. It is typically used as part of virtual reality setups for mouse behavior (e.g. Harvey et al. 2009; originally used in insect behavior, see Buchner 1976). This open-source project is modified from a design by the Technocenter, Radboud University in collaboration with the Battaglia lab.

The original design was adapted to

  1. Accommodate the Logitech G502 mouse model (earlier model was discontinued).
  2. Distance control – the sensor can be moved closer or away from the styrofoam ball, simply by adding washers between sensor box wall and base.
  3. Easy access – The sensor box can be easily open/closed (it attaches with magnets), facilitating cleaning. All sensor components can be removed in that way, giving access to the screws that enable distance control.
  4. Easy anchoring on optic tables with 4 feet compatible with M6 screws.  

This project requires 3D-printed parts (FDM), 2 Logitech G502 mice, a valve and a few screws. See the Assembly Instructions document for a detailed bill of materials and step-by-step instructions.   

Note: Depending on the 3D printing technology you use, minor deformations can happen to the small air outflow holes inside the base. For FDM, circles might print slightly oval: In some cases, it results in the ball rotating around the vertical axis (for testing purposes, can be amplified with increased air flow). This could lead to decision bias in tasks where mice are trained to run toward targets in VR. If you notice this with your treadmill, simply make the holes more round with a drill bit, needle or an M1 tap when available.

Computer mouse data readout and integration with data acquisition/virtual reality environment

The basic principle can be found in the code by Christoph Schmidt-Hieber, who came up with the idea of a virtual reality system for mice based on the Blender software and shared it on github.

Code: https://github.com/neurodroid/gnoom

Getting started page: https://code.google.com/archive/p/gnoom/wikis/GettingStarted.wiki

That page deals specifically with setting up the PC mouse readout. While helpful, it isn’t a turn key solution. Despite the mention that a specific type of mouse is required, the code should work with all types as long as you know the name and vendor ID.

Originally, the idea was to use Ubuntu (Windows doesn’t easily allow you to connect two mice) and a Python script to read out the second mouse info and then use it in your VR environment of choice (here, Blender). More recently, some labs have implemented the code on a Windows machine, using Unreal Engine 4 to generate VR on a dome. Preprint available: Shapcott et al. 2022, with open-source code.

A bit of history

The first head-fixed behavior setup was built for the fruitfly, and used a complex optical readout of the ball movement. For details, see:

Buchner, E. Elementary movement detectors in an insect visual system. Biol. Cybernetics 24, 85–101 (1976). https://doi.org/10.1007/BF00360648

 Copyright 3Dneuro 2021.

 This source describes Open Hardware and is licensed under the CERN-OHL-S v2

You may redistribute and modify this documentation and make products using it under the terms of the CERN-OHL-S v2 (https:/cern.ch/cern-ohl). This documentation is distributed WITHOUT ANY EXPRESS OR IMPLIED WARRANTY, INCLUDING OF MERCHANTABILITY, SATISFACTORY QUALITY AND FITNESS FOR A PARTICULAR PURPOSE. Please see the CERN-OHL-S v2 for applicable conditions.

 Source location: https://www.3dneuro.com/open-hardware