PlasticBrain is a display device using a 3D realistic model of the brain.
It can display functional activity (fMRI, EEG, MEG, NIR, PET…) or any other information (connectivity, anatomical atlas), to visualize data, teach or for biofeedback-therapy.
It is built from a 3D print of a human brain segmented from an MRI, some RGB LED strips and an Arduino UNO to drive the display.
LEDs are either directly put inside the hemisphere or outside on a matrix (with the light being guided inside the model by optical fibers).
It is distributed freely (software is distributed with the GNU GPLv3 license, and the harware design is distributed under the conditions of the CERN Open Hardware license).
I founded a small company to develop the hardware and software aspects and to sell the device. Integration with existing data acquisition systems (in neuroscience research, clinical, or DiY systems) can be done on-demand. Contact : manik <dot> bhattacharjee <at> free.fr
From MRI to 3D printing :
- Acquisition of a 3D T1-weighted MRI with a resolution of around 1 mm isotropic.
- Segmentation and meshes of cortical hemispheres with BrainVisa
- Decimate and smooth the meshes, either manually with Blender, or with BrainVisa tools
- Optional : generate a mesh with tunnels where electrodes were implanted in a patient’s brain (SEEG or DBS electrodes) with IntrAnat software.
- Export the meshes as .obj files with Anatomist (the viewer which comes bundled with BrainVisa)
- Optional : Split hemispheres in two parts to be assembled after LED insertion : choose a cutting plane in Blender, use a Boolean modifier to cut the mesh, duplicate and do it again for the other side. Apply the modifiers..
- Export the meshes as STL files
- Depending on the 3D printer, load the STL file in the appropriate software
- Choose no fill-in for the print (to have room for the LEDs) and use support structures for overhanging issues.
- Our tests:
- With a Ultimaker2 FDM printer and transparent PLA from Colorfabb : multiple print failureswith unexplained offsets of some layers during the 11 hours of printing, and one successful print.
- With a Zortrax M200 FDM printer and Z-glass material : test in progress at Fablab de la casemate de Grenoble
- With a Formlabs SLA printer and a translucent resin : test expected in a few months
Use of individually adressable RGB LEDs (e.g. WS2812B) strips, as dense as possible (now 144 LEDs per meter). According to the scale of the model we need between two and three led strips per hemisphere.
Warning LEDs can get relly hot, beware of overheating !
- Glueing LEDs under the hemisphere surface
- Roll the LED strip around inside the hemisphere and place the LEDs carefully on the surface facing outwards. Cover the surface as well as possible.
- Use a hot glue gun with translucent glue to attach the LED strip to the surface
- Use the three cables from the LED strip to power and pilot it : plug to a 5V power supply that can provide enough current on the black and red cables (beware of getting the polarity right), plug the green cable to an output PIN from the Arduino.
- Between the power cables + and -, solder a capacitor to smooth the current peaks caused by the LEDs switching on and off, because it can prevent the color signal from the Arduino to work.
- LED matrix and optical fibers
- Connect a WS2812b LED matrix to the Arduino
- 3D print a support to attach optical fibers on top of the LEDs
- If possible use collimation optics to avoid losing to much light (tests in progress)
- Tie fibers together to match the shape of an SEEG electrode, with a fiber end where each electrode contact should be.
- Place the fiber-optic mock electrodes in the tunnels printed for them in the brain model.
- Build a small box with a laser cutter to house the electronics
- locateLEDS : locate the LEDs in the model : ongoing development
- Integration with Brainvisa and IntrAnat to display atlases and functional data
- Arduino code : setup code (lights LEDs one by one), christmas tree (beautiful colors), data receiver that displays colors received by the Arduino (using the USB connection)
- Coupling with OpenBCI to display the data recorded with the OpenBCI EEG headset
- Coupling with OpenVibe : Display data read from files or from realtime acquisitions
- Coupling with BrainTV : display gamma-band activity recorded from implanted SEEG electrodes in realtime
- Coupling with Bitalino to display heart actity or breathing as colors on the device.
In 2014/2015 we bought an Arduino to synchronize a clinical SEEG recording system with a stimulation software.
As we had this component available, we realized that because 3D printing and DIY electronics were now available to the general public, we could build an old idea of mine : display on a realistic 3D brain its activity, realtime or afterwards (for example to replay an epileptic seizure in slow-motion), or use it to display anatomical regions.
Manik Bhattacharjee – LinkedIn