Realistic head model: BEM with OpenMEEG

Authors: Francois Tadel, Alexandre Gramfort

This forward model uses a symmetric boundary element method (symmetric BEM) and was developed by the French public research institute INRIA (website). It uses three realistic layers (scalp, inner skull, outer skull). The goal of this forward solution is mostly for EEG users, to provide more accurate results than the spherical models. It is not necessary for MEG users, as the "overlapping spheres" method gives similar results but much faster. This method is illustrated using the tutorial EEG and epilepsy.



On Windows 64bit systems, you need to install an extra Microsoft software package to run OpenMEEG: Microsoft Visual C++ 2010 Redistributable Package (x64).

BEM surfaces

We need three realistic layers extracted from the subject's MRI (scalp, inner skull, outer skull), plus the source space (cortical surface). These layers are sometimes complicated to generate. In the case you do not have any way to calculate the inner skull and outer skull surfaces, Brainstorm can generate rough approximations based on the subject's cortex and head surfaces and ICBM152's inner and outer skull surfaces. The surfaces created with Brainstorm are by construction non-intersecting.

  1. Select the protocol TutorialEpilepsy.

  2. Go to the anatomy view (first button on top of the database explorer).
  3. Right-click on the subject folder > Generate BEM surfaces. You can set the approximate number of vertices you want for each layer. For this example, leave the default parameters and click on Ok.

    bemPopup.gif bemOptions.gif

  4. At the end of the process, three new surfaces are added to the database:

    bemFiles.gif bem3d.gif

How to set the number of vertices per layer

Forward model

  1. Switch to the view "Functional data (sorted by subjects)", 2nd button above the database explore.
  2. Right-click on the channel file > Compute head model. Select OpenMEEG BEM in the list.


  3. Explanations of the options:
    • BEM Layers & conductivities: You can select how many layers you want to use for the BEM model. The possible options in our case are Scalp (=head), Skull (=outer skull), and Brain (=inner skull). The values on the right are the relative conductivities of each layer.

      • For EEG: Use all the layers
      • For MEG: Use only the inner skull layer
    • Use adjoint formulation: Decrease significantly the amount of memory that is necessary in memory and on the hard drive, but much longer.

    • Use adaptive integration: This produces a more accurate solution, mostly in the cases of dipoles (vertices of the cortex surface) that are very close to the inner skull layer. Keep this option selected.

    • Process dipoles by blocks: If you consistently run into crashes, it could be because you don't have enough memory available. You can try to process the dipoles by smaller blocks. It would be longer but could work. Select this option only if you have memory errors.

  4. Download OpenMEEG software? Yes.
    This will download the latest version of the OpenMEEG binaries for your operating system from INRIA website, and install it in Brainstorm user folder (~username/.brainstorm/openmeeg/)


  5. Then the calculation of the head model will automatically start. You may wait for a very long time. Be patient, it's worth it...


  6. You have now a new head model for this subject.



OpenMEEG may crash for various reasons: we tried to list the possible causes here. If you cannot find a solution, please post the full error message on the Brainstorm user forum (you can copy-paste the error message from the Matlab command window after closing the error message box).



All systems

Additional documentation

Tutorial "Head modeling":


OpenMEEG is distributed under the French opensource license CeCILL-B. It is intended to give users the freedom to modify and redistribute the software. It is therefore compatible with popular opensource licenses such as the GPL and BSD licenses. The CeCILL-B license imposes to anybody distributing a software incorporating OpenMEEG the obligation to give credits (by citing the appropriate publications), in order for all contributions to be properly identified and acknowledged.

The references to be acknowledged are:

Feedback: Comments, bug reports, suggestions, questions
Email address (if you expect an answer):

Tutorials/TutBem (last edited 2018-08-03 14:01:57 by FrancoisTadel)