   #[1]Monte Carlo eXtreme: GPU-based Monte Carlo Simulations

How to get MCX

          1. [2]Download the Latest Release

                1.1. [3]All-in-one MCX Studio packages

                1.2. [4]Individual packages

                1.3. [5]Python modules

                1.4. [6]Windows installer and winget

                1.5. [7]Docker images

                1.6. [8]Test the nightly-build packages

                1.7. [9]Get the latest source code

                1.8. [10]Contribute to MCX

          2. [11]References

1. Download the Latest Release

Current Release: MCX, MCX-CL and MMC v2026 (3.0)

     * MCX v2026 (3.0 - Lucky Lux) - CUDA, for NVIDIA GPUs (and AMD GPUs
       when compiled with ROCm/HIP from the source code)
     * MCX-CL v2026 (3.0 - Juxtaposition) - OpenCL, for NVIDIA/AMD/Intel
       GPUs and CPUs, including Apple silicon
     * MMC v2026 (3.0.0 - Egg Tart) - mesh-based MC, for CPUs (SSE) and
       GPUs (OpenCL/CUDA)

   Please read the [12]release notes (ChangeLog.txt and the "What's New"
   section of README.md) for the list of new features and bug fixes.

   All packages can be downloaded at our [13]download page. The same
   packages are also attached to the [14]GitHub release page. We are
   greatly appreciated if you can tell us a little bit about you and your
   related research by [15]registering your copy of MCX.

   Starting from v2026, the released Linux binaries and mex files are
   built in a manylinux2014 container and run on Linux distributions with
   glibc 2.17 or newer (i.e. most distributions released since 2014). The
   MCX binaries are statically linked with the CUDA runtime, so only an
   NVIDIA driver is needed to run them.

1.1. All-in-one MCX Studio packages

   For most users, we recommend downloading the all-in-one "MCX Studio"
   package for your platform (Linux x86_64, macOS x86_64/arm64, or
   Windows x86_64). Each package contains the mcx/mcxcl/mmc simulators
   supported on that platform, the MCX Studio graphical user interface
   (mcxstudio), the MATLAB/Octave toolboxes (MCXLAB, MCXLABCL and MMCLAB),
   and the examples. On macOS, where CUDA is not available, please use
   mcxcl and mmc (OpenCL).

1.2. Individual packages

   The following packages are also provided individually

     * mcx: the mcx binary, examples and MATLAB/Octave utility scripts
     * mcxlab: the MATLAB and Octave mex files of MCX (MCXLAB); the
       Octave mex files for Windows and macOS require Octave 10 or newer
       (linked against liboctmex), and the Linux mex file works with any
       recent Octave version
     * redbird: the [16]Redbird (MATLAB/Octave) and [17]Redbirdpy (Python)
       image reconstruction toolboxes, which can use mcx/mmc as the
       forward solver

1.3. Python modules

   The Python bindings of MCX, MCX-CL and MMC can be installed from
   [18]PyPI using pip

 python3 -m pip install pmcx      # MCX (CUDA)
 python3 -m pip install pmcxcl    # MCX-CL (OpenCL)
 python3 -m pip install pmmc      # MMC

   Binary wheels of pmcx are provided for Linux (x86_64) and Windows. On
   macOS, pip installs a pure-python pmcx that only contains the utility
   functions; use pmcxcl to run simulations on a Mac. pmcx.mcxlab() falls
   back to pmcxcl when the CUDA module is not available.

1.4. Windows installer and winget

   On Windows, MCX Studio and the simulators can be installed using the
   MCX Studio installer from the download page, or by running

 winget install coti.mcxstudio

   in a command window.

1.5. Docker images

   Docker images containing mcx and mmc are available on Docker Hub as
   [19]fangqq/mcx and [20]fangqq/mmc. These images are also used by
   [21]MCX Cloud. To download the image, run

 docker pull fangqq/mcx

   To use the GPU inside a container, you need to install the NVIDIA
   Container Toolkit and start the container with "docker run --gpus all".

1.6. Test the nightly-build packages

   We automatically compile MCX, MCX-CL, MMC and their MATLAB/Octave
   toolboxes using GitHub Actions after each update, and upload the
   binary packages to our [22]nightly-build folder. If you want to try out
   the latest pre-compiled software, please browse the following link and
   select the package that matches your OS:

   for MCX
          [23]https://mcx.space/nightly/

1.7. Get the latest source code

   The latest code can be downloaded from the project's [24]Github
   repository. This can be done using the following git command.

 git clone --recursive https://github.com/fangq/mcx.git mcx

   After downloading the source code, please follow [25]the instructions
   to compile and run the software (see also Setup_MCX.txt).

1.8. Contribute to MCX

   If you are interested in contributing codes, testing data and
   documentation to MCX, please [26]fork this project on github. Once your
   feature is fully developed in your forked branch, please send a
   [27]pull request in order for MCX's developer to review your changes.

2. References

   The author of this software would like you to acknowledge the use of
   this software in your related publications by citing the following
   publications:

     * Qianqian Fang and David A. Boas, "[28]Monte Carlo Simulation of
       Photon Migration in 3D Turbid Media Accelerated by Graphics
       Processing Units," Opt. Express, vol. 17, issue 22, pp. 20178-20190
       (2009)

     * Leiming Yu, Fanny Nina-Paravecino, David Kaeli, Qianqian Fang,
       "[29]Scalable and massively parallel Monte Carlo photon transport
       simulations for heterogeneous computing platforms," J. Biomed. Opt.
       23(1), 010504 (2018).

     * Shijie Yan and Qianqian Fang, "[30]Hybrid mesh and voxel based
       Monte Carlo algorithm for accurate and efficient photon transport
       modeling in complex bio-tissues," Biomed. Opt. Express, 11(11) pp.
       6262-6270 (2020).

   A full list of publications related to the simulation techniques
   implemented in this package, including "photon replay", "photon
   sharing" etc, can be found in Citation.txt and at

   [31]https://mcx.space/#publication

References

   1. https://mcx.space/wiki/index.cgi?action=rss
   2. https://mcx.space/wiki/index.cgi?Download#Download_the_Latest_Release
   3. https://mcx.space/wiki/index.cgi?Download#All_in_one_MCX_Studio_packages
   4. https://mcx.space/wiki/index.cgi?Download#Individual_packages
   5. https://mcx.space/wiki/index.cgi?Download#Python_modules
   6. https://mcx.space/wiki/index.cgi?Download#Windows_installer_and_winget
   7. https://mcx.space/wiki/index.cgi?Download#Docker_images
   8. https://mcx.space/wiki/index.cgi?Download#Test_the_nightly_build_packages
   9. https://mcx.space/wiki/index.cgi?Download#Get_the_latest_source_code
  10. https://mcx.space/wiki/index.cgi?Download#Contribute_to_MCX
  11. https://mcx.space/wiki/index.cgi?Download#References
  12. https://github.com/fangq/mcx/blob/master/ChangeLog.txt
  13. https://mcx.space/wiki/?Get
  14. https://github.com/fangq/mcx/releases
  15. https://mcx.space/wiki/index.cgi?keywords=register&tool=mcx&ref=wikidl
  16. https://github.com/fangq/redbird
  17. https://github.com/fangq/redbirdpy
  18. https://pypi.org/project/pmcx/
  19. https://hub.docker.com/r/fangqq/mcx
  20. https://hub.docker.com/r/fangqq/mmc
  21. https://mcx.space/cloud/
  22. https://mcx.space/nightly/
  23. https://mcx.space/nightly/
  24. https://github.com/fangq/mcx
  25. https://mcx.space/wiki/index.cgi?Doc/Installation
  26. https://github.com/fangq/mcx/fork
  27. https://docs.github.com/en/pull-requests
  28. https://doi.org/10.1364/OE.17.020178
  29. https://doi.org/10.1117/1.JBO.23.1.010504
  30. https://opg.optica.org/boe/abstract.cfm?uri=boe-11-11-6262
  31. https://mcx.space/#publication
