diff --git a/inno/MCXStudio.iss b/inno/MCXStudio.iss index 90d04eb8..28c8236c 100755 --- a/inno/MCXStudio.iss +++ b/inno/MCXStudio.iss @@ -10,7 +10,7 @@ #define MyAppName "MCX Studio" #define MyAppDir "MCXStudio" -#define MyAppVersion "v2024.2" +#define MyAppVersion "v2025" #define MyAppPublisher "COTILab" #define MyAppURL "https://mcx.space" #define MyAppExeName "mcxstudio.exe" diff --git a/manpage/mcx.1 b/manpage/mcx.1 index e68d3357..9074b34d 100644 --- a/manpage/mcx.1 +++ b/manpage/mcx.1 @@ -1,6 +1,6 @@ .\" Manpage for mcx. .\" Contact fangqq@gmail.com to correct errors or typos. -.TH man 7 "14 March 2024" "v2024.2" "Monte Carlo eXtreme (MCX) man page" +.TH man 7 "26 January 2025" "v2025" "Monte Carlo eXtreme (MCX) man page" .SH NAME mcx \- a GPU-accelerated 3-D photon transport simulator .SH SYNOPSIS @@ -35,29 +35,38 @@ The accepted command line options include: .TP \fB=========== Required options ===========.TP \fB-f/--input \fR -Use -f to specify an input file. -f filename.json -or - -f filename.inp - +Use -f to specify an input file. -f filename.json filename may contain absolute or relative path. If the filename has a '.json'extension, this input file is in the JSON format. If the input file name endswith '.inp', it is in the legacy format. If the file name contains space, onemust use quotation marks to quote the full file name. In Windows, the quotationmust be double quote (""). In Linux or Mac, either single or double quotationmark works. If this flag is followed by an inline JSON string, such as -f '{...}', theparameter is parsed as an "inline JSON input file". + +if -f is followed by nothing or a single '-', it reads input from stdin via pipe. + .TP -\fB--bench \fR -.TP -Use --bench to list all built-in benchmarks. As of MCX v2024.2, these benchmarks include - cube60 - cube60b - cube60planar - cubesph60b - skinvessel - sphshell - spherebox - colin27 +\fB-Q/--bench \fR +.TP +Use -Q or --bench to list all built-in benchmarks. As of MCX v2025, these benchmarks include + cube60 + cube60b + cube60planar + cubesph60b + onecube + twocube + skinvessel + sphshells + spherebox + colin27 One can execute one of the built-in benchmarks by following the benchmark name, such as - --bench skinvessel + -Q skinvessel + +The default settings in each built-in benchmark can be overwritten by the additionalcommand line flags, such as -Q cube60 -n 1e8 runs 1e8 photons instead of thedefault 1e6. Use --bench name --dumpjson to export the benchmark as a standalone JSONinput file. + +.TP +\fB-N/--net \fR +Download benchmark simulations from NeuroJSON.io, -N only to list benchmark; the +input can be a dataset REST-API URL starting with http, or in the format of "databasename/benchmarkname" +This function requires 'curl', install from https://curl.se/ -The default settings in each built-in benchmark can be overwritten by the additionalcommand line flags, such as --bench cube60 -n 1e8 runs 1e8 photons instead of thedefault 1e6. Use --bench name --dumpjson to export the benchmark as a standalone JSONinput file. .TP \fB=========== MC options =========== @@ -116,6 +125,7 @@ If one sets -U 2, the normalization is only applied to the fluence in theinterio \fB-E/--seed \fR Use -E to set the seed of the CPU random number generator (RNG). The CPU RNG inturn initializes the seeds for each GPU thread. -E -1 // let MCX to automatically seed the CPU-RNG using system clock -E n // n is a large positive integer, set the CPU-RNG's seed to n -E filename.mch // replay detected photons using the seeds saved in the mchfile Setting a fixed RNG seed is expected to create reproducible results on NVIDIAcards if the thread/block size are kept the same. +If not specified, a default seed 1648335518 will be used. .TP \fB-z/--srcfrom0 <0 or 1, if ignored, assumed to be 1>\fR @@ -154,7 +164,7 @@ Use the -P option to dynamically define heterogeneities from the command line.Th This defines a 3-layer medium: z slices 1-10 is filled with tissue label 1, zslices 11-30 is filled with label 2, and 31-60 is filled with label 3.The shape definition always starts an array object named 'Shapes'. Each elementin the 'Shapes' object defines a primitive object. The supported primitivesincludeName, Origin, Grid, Sphere, Box, Subgrid, {XYZ}Layers, {XYZ}Slabs, Cylinder, UpperSpace.Most objects have a sub-field 'Tag', specifying the tissue label (index to theproperty list). The details of the Shapes objects can be found in this link .TP -\fB-j / --json \fR +\fB-j/--json \fR Use the -j option to dynamically define simulation parameters to overwrite/modifythe default settings as specified in the .inp/.json file provided after the -fflag. The -j flag is followed by a JSON-formatted string. The format of the JSONconstruct is the same as in an MCX JSON input file. For example -j '{"Optode":{"Source":{"Type":"fourier","Param1":[40,0,0,2]}}}' @@ -327,8 +337,13 @@ Use -S to enable or disable saving volumetric fluence distributions (or thereque \fB-O/--outputtype \fR Use -O to specify the type of data to be saved in the volumetric output. Thesupported formats include 'X' - output time-resolved fluence rate (1/mm^2), i.e. TPSF - 'F' - output time-resolved fluence rate integrated in each time-gate, 'E' - energy deposit at each voxel (normalized or unnormalized, depends on -n) - 'J' - Jacobian (replay mode), 'P' - scattering event counts at each voxel (replay mode only) + 'F' - output time-resolved fluence rate integrated in each time-gate, + 'E' - energy deposit at each voxel (normalized or unnormalized, depends on -n) + 'J' - Jacobian (replay mode), + 'P' - scattering event counts at each voxel (replay mode only) + 'M' - momentum transfer replay + 'R' - RF/FD Jacobian + 'L' - total pathlength per voxel .TP @@ -363,7 +378,13 @@ must be 0-6 or one of 'zlib', 'gzip','base64','lzip','lzma','lz4' or 'lz4hc', ca .TP \fB--dumpjson \fR Must be a number (1-3), empty, '-' or a file name -Export all settings,including volume data using JSON/JData (https://neurojson.org)format for easy sharing; can be reused using -f +Export all settings,including volume data using JSON/JData +(https://neurojson.org)format for easy sharing; can be reused using -f +if followed by nothing or '-', mcx will print +the JSON to the console; write to a file if file +name is specified; by default, prints settings +after pre-processing; '--dumpjson 2' prints +raw inputs before pre-processing if followed by nothing or '-', mcx will print the JSON to the console;write to a file if file name is specified;by default, prints settings after pre-processing;--dumpjson 2 prints raw inputs before pre-processing --dumpjson 3 prints raw inputs after pre-processing @@ -410,6 +431,17 @@ after a photon completes the specified number of scattering events, mcx then ignores anisotropy g and only performs isotropic scattering for speed +.TP +\fB--srcid <-1, 0, 1, 2, ...>\fR +-1 simulate multi-source separately;0 all sources +together; a positive integer runs a single source + +.TP +\fB--maxjumpdebug \fR +when trajectory is requested (i.e. -D M), +use this parameter to set the maximum positions +stored (default: 1e7) + .TP \fB--maxvoidstep \fR maximum distance (in voxel unit) of a photon that @@ -426,13 +458,13 @@ stored (default: 1e7) mcx -L \fBListing built-in benchmarks\fR - mcx --bench + mcx -Q \fBRunning built-in benchmarks\fR - mcx --bench cube60 + mcx -Q cube60 \fBDump JSON configuration file for the built-in benchmark\fR - mcx --bench cube60 --dumpjson + mcx -Q cube60 --dumpjson \fBRunning mcx using autopilot mode\fR mcx -A 1 -n 1e7 --bench cube60b -G 1 -D P @@ -446,6 +478,18 @@ stored (default: 1e7) \fBUsing inline JSON setting modifier\fR mcx -f input.json -j '{"Optode":{"Source":{"Type":"isotropic"}}}' +\fBUse -N/--net to browse community-contributed mcx simulations at https://neurojson.io\fR + mcx -N + +\fBRun user-shared mcx simulations, see full list at https://neurojson.org/db/mcx\fR + mcx -N aircube60 + +\fBUse -f - to read piped input file modified by shell text processing utilities\fR + mcx -Q cube60 --dumpjson | sed -e 's/pencil/cone/g' | mcx -f - + +\fBor (download/modify simulations from NeuroJSON.io and run with mcx -f) + curl -s -X GET https://neurojson.io:7777/mcx/aircube60 | jq '.Forward.Dt = 1e-9' | mcx -f + .SH SEE ALSO mmc(7), mcxcl(7) .SH AUTHOR diff --git a/manpage/mcxcontest.1 b/manpage/mcxcontest.1 index fbc63b06..77ca3e26 100644 --- a/manpage/mcxcontest.1 +++ b/manpage/mcxcontest.1 @@ -1,6 +1,6 @@ .\" Manpage for mcxcontest. .\" Contact fangqq@gmail.com to correct errors or typos. -.TH man 7 "14 March 2024" "v2024.2" "mcxcontest man page" +.TH man 7 "26 January 2025" "v2025" "mcxcontest man page" .SH NAME mcxcontest \- benchmark your NVIDIA GPU hardware using MCX built-in tests .SH SYNOPSIS diff --git a/manpage/mcxshow.1 b/manpage/mcxshow.1 index 8e2c52d5..b1c2b6b4 100644 --- a/manpage/mcxshow.1 +++ b/manpage/mcxshow.1 @@ -1,6 +1,6 @@ .\" Manpage for mcxshow. .\" Contact fangqq@gmail.com to correct errors or typos. -.TH man 7 "14 March 2024" "v2024.2" "mcxshow man page" +.TH man 7 "26 January 2025" "v2025" "mcxshow man page" .SH NAME mcxshow \- a 3D previewer for MCX/MCXCL/MMC photon transport simulations .SH SYNOPSIS diff --git a/manpage/mcxstudio.1 b/manpage/mcxstudio.1 index 811a72f8..a6c6885f 100644 --- a/manpage/mcxstudio.1 +++ b/manpage/mcxstudio.1 @@ -1,6 +1,6 @@ .\" Manpage for mcxstudio. .\" Contact fangqq@gmail.com to correct errors or typos. -.TH man 7 "14 March 2024" "v2024.2" "Monte Carlo eXtreme (MCX) Studio man page" +.TH man 7 "26 January 2025" "v2025" "Monte Carlo eXtreme (MCX) Studio man page" .SH NAME MCXStudio \- a cross-platform GUI for managing MCX/MCXCL/MMC simulations .SH SYNOPSIS diff --git a/manpage/mcxviewer.1 b/manpage/mcxviewer.1 index 5c883cdc..0b239703 100644 --- a/manpage/mcxviewer.1 +++ b/manpage/mcxviewer.1 @@ -1,6 +1,6 @@ .\" Manpage for mcxviewer. .\" Contact fangqq@gmail.com to correct errors or typos. -.TH man 7 "14 March 2024" "v2024.2" "mcxviewer man page" +.TH man 7 "26 January 2025" "v2025" "mcxviewer man page" .SH NAME mcxviewer \- a 3D NIfTI/MC2 volumetric data renderer for MCX/MCXCL/MMC photon transport simulations .SH SYNOPSIS diff --git a/manpage/photon.1 b/manpage/photon.1 index f62769b2..26be518f 100644 --- a/manpage/photon.1 +++ b/manpage/photon.1 @@ -1,6 +1,6 @@ .\" Manpage for photon. .\" Contact fangqq@gmail.com to correct errors or typos. -.TH man 7 "14 March 2024" "v2024.2" "photon man page" +.TH man 7 "26 January 2025" "v2025" "photon man page" .SH NAME photon \- a unified command line interface for running MCX/MMC photon simulations .SH SYNOPSIS diff --git a/mcxstudio/mcxabout.lfm b/mcxstudio/mcxabout.lfm index 593e1951..00a140c0 100644 --- a/mcxstudio/mcxabout.lfm +++ b/mcxstudio/mcxabout.lfm @@ -45,7 +45,7 @@ object fmAbout: TfmAbout BorderStyle = bsNone Font.Color = clWhite Lines.Strings = ( - 'MCXStudio version: v2023' + 'MCXStudio version: v2025' '' 'Funding Support:' ' This project is funded by the NIH/NIGMS under ' diff --git a/winget/coti.mcxstudio.locale.en-US.yaml b/winget/coti.mcxstudio.locale.en-US.yaml index 66ae6bed..a5c89b35 100644 --- a/winget/coti.mcxstudio.locale.en-US.yaml +++ b/winget/coti.mcxstudio.locale.en-US.yaml @@ -2,7 +2,7 @@ # yaml-language-server: $schema=https://aka.ms/winget-manifest.defaultLocale.1.1.0.schema.json PackageIdentifier: coti.mcxstudio -PackageVersion: v2024.2 +PackageVersion: v2025 PackageLocale: en-US Publisher: COTILab PublisherUrl: https://mcx.space @@ -12,9 +12,9 @@ Author: Qianqian Fang PackageName: MCX Studio PackageUrl: https://sourceforge.net/projects/mcx/ License: GNU General Public License v3.0 (GPL-3.0) -LicenseUrl: https://github.com/fangq/mcx/blob/v2024.2/LICENSE.txt -Copyright: Copyright (c) 2010-2023 Qianqian Fang -CopyrightUrl: https://github.com/fangq/mcx/blob/v2024.2/LICENSE.txt +LicenseUrl: https://github.com/fangq/mcx/blob/v2025/LICENSE.txt +Copyright: Copyright (c) 2010-2025 Qianqian Fang +CopyrightUrl: https://github.com/fangq/mcx/blob/v2025/LICENSE.txt ShortDescription: Monte Carlo eXtreme (MCX) - Physically accurate and validated GPU ray-tracer Description: Monte Carlo eXtreme, or MCX, is a Monte Carlo photon simulator for modeling light transport in 3D turbid media. It uses NVIDIA graphics processing units (GPUs) to simulate thousands of photons simultaneously, making it one of the fastest and most accurate photon modeling tools. Moniker: mcxstudio @@ -35,6 +35,6 @@ ReleaseNotes: |- - [Feature] Per-voxel mua/mus/g/n format support (fangq/mcx\#203) - [Critical bug fix] Fix double-multiplication of pattern launched weight, (fangq/mcx\#212) - [Bug fix] Apply (fangq/mcx\#41) like 2x-float-buffer for dref accumulation, fix (fangq/mcx\#195) -ReleaseNotesUrl: http://mcx.space/wiki/index.cgi?Doc/ReleaseNotes/v2024.2 +ReleaseNotesUrl: http://mcx.space/wiki/index.cgi?Doc/ReleaseNotes/v2025 ManifestType: defaultLocale ManifestVersion: 1.1.0 diff --git a/winget/coti.mcxstudio.yaml b/winget/coti.mcxstudio.yaml index 987b37bf..e621fd0f 100644 --- a/winget/coti.mcxstudio.yaml +++ b/winget/coti.mcxstudio.yaml @@ -2,7 +2,7 @@ # yaml-language-server: $schema=https://aka.ms/winget-manifest.version.1.1.0.schema.json PackageIdentifier: coti.mcxstudio -PackageVersion: v2024.2 +PackageVersion: v2025 DefaultLocale: en-US ManifestType: version ManifestVersion: 1.1.0