|
| The plot shows the intensity of scattered neutrons (red is
highest intensity). The sample is at the center of the sphere with the
neutron beam coming from the left. Clearly seen is the shadowing effect
of the sample causing a lower intensity opposite the beam. Also seen is
the effect of the non-symmetric geometry of the sample, causing lower intensity
directly above and to the side of the sample. | ![]() |
A bug-fix release covering everything since the previous "announced" release, 3.9.0, including the changes already shipped quietly in 3.9.1. For the main new features of the 3.9 series, see the 3.9.0 release notes.
Mirror in OFF mode, which did not reflect. Faces in the geometry file can now also carry their own properties. By @willend.Guide_anyshape now reads per-face coatings (m, alpha, W, ...) directly from the OFF/PLY file with the new file_coatings=1 option. This replaces Guide_anyshape_r, which moves to the obsolete components. By @willend.ESS_butterfly: selecting sector W, beamline 11 automatically switches to a TBL mode that views both cold wings of the moderator. Consolidated by @willend with Claude from the TBL team's local version.Monitor_nD-based Union loggers now record the real neutron ID and user0–user9 values instead of random numbers. By @tkittel.Union_master, Refractor or the Bispectral mirrors now compile. By @tkittel.mcstas-chopper-lib updated to v4.2.3: the external chopper components NXdisk_chopper, Masked_ESS_butterfly and Polygon_ESS_butterfly now show up properly in mcdoc. By @g5t and @willend.mxrun. By @willend.The full, categorised list of changes, common to McStas and McXtrace as well as specific to each, is in the McCode v3.9.2 release notes on GitHub.
Full Changelog: https://github.com/mccode-dev/McCode/compare/v3.9.0...v3.9.2
Covers everything since the previous "announced" release, 3.8.4.
PowderN / Single_crystal accept multiphase and single-crystal NCrystal materials. New components: Union_NCrystal_material and NCrystal_filter. By @tkittel and @mads-bertelsen-agentic.Union_init and Union_stop are no longer needed in your instruments, the framework is now self-contained (@mads-bertelsen-agentic and @g5t). Also new: Union_abs_logger_nD_scintillator (@MilanKlausz, with @tkittel).Dispersion_relation sample component for phonon or magnon scattering from tabulated (numerical) dispersion relations, tested against Phonon_simple and SpinWave_BCO. By Daniel Lomholt Christensen (@lomholy-agentic) and Kim Lefmann.mcdisplay-webgl: the 3D instrument viewer no longer depends on Vite/npm and now starts up much faster. By @willend.ILL_H521_NeXT (neutron branch) in McStas and ILL_NeXT_Xray (X-ray branch) in McXtrace. Both were "vibe-coded" by @willend with Claude, starting from the instrument's webpage and the existing ILL information in McStas.The full, categorised list of changes, common to McStas and McXtrace as well as specific to each, is in the McCode v3.9.0 release notes on GitHub.
Full Changelog: https://github.com/mccode-dev/McCode/compare/v3.8.4...v3.9.0
Changes in McStas/McXtrace 3.8.4
Covers everything since the last full release, 3.7.9 (July 2, 2026), including all changes already shipped quietly via the intermediate conda-forge releases 3.7.10–3.8.3, and a ground-up rewrite of the McStas/McXtrace manuals.
Sorry for any incovenience caused if you installed any of 3.8.1-3... Some doc-details were still not in place!
mcrun/mxrun, mcplot, mcdisplay, mcgui, mcdoc, ...) rewritten against the actual CLI code; component reference/parameter tables now generated directly from the current .comp sources (closing a long-standing manual/code drift); mcdoc itself reworked to support it. By @willend in #2592cogen.c, example instruments, component sources, tool CLIs) were given to an AI coding agent to draft the updated text, reviewed and merged by @willend. Given the scale of the rewrite, minor errors/omissions in the manuals are expected — please flag anything you spot via a GitHub issuemcdoc's browser-based overview page now also links to per-tool cheat-sheets (mcrun, mcgui, mcplot, mcdisplay, mctest, mcdoc, code generators) and to new standalone Instrument/Component grammar reference pages, all a click away from the component browser by @willend
New links in mcdoc. Also visible on this website:
Documentation overview page
Tool documentation overview
INSTRUMENT grammar
COMPONENT grammar
mcplotdiff-html/mcplotdiff-pyqtgraph/mcplotdiff-matplotlib: plot the difference between two simulation results, monitor by monitor (diff.monN = a.monN - b.monN), with a diverging blue/white/red colour scale for 2D monitors and diff datasets written out as normal, reopenable McCode .dat files by @willend in #2560, #2562, #2564 — later reworked to show %-difference in #2599 and to always write diff datasets in #2585
mcviewtest now spawns mcplotdiff-html automatically by @willend in #2568mccoplot-html/mccoplot-pyqtgraph/mccoplot-matplotlib: companion to mcplotdiff, overlaying two (or more) datasets' 1D monitors on the same axes for direct curve comparison by @willend in #2587, with n-way overlay support in #2594 and a McXtrace-side fix in #2589
mcviewtest also spawns mccoplot generation by @willend in #2588, #2595mctest: added -s/--seed option and an option to emulate McCode's classic "Unix epoch" default seed, for reproducible test runs by @willend in #2575, #2576mctest: new --strict mode fails a test if an instrument is missing its %Example: header line(s) by @willend in #2602 (spillover-bug fix in #2604), plus general robustness improvements in #2603 and a GPU-box-specific fix in #2613mctest: fixed TypeError on re-runs caused by displaytime never being restored from the saved JSON state by @mads-bertelsen-agentic in #2624mcplot-html: added a slider to control plot iframe size, and geometry/scaling adjustments, by @willend in #2547, #2548, #2549, #2550mcplot-matplotlib (especially for large 2D matrices) by @willend in #2570mcrun/mxrun: allow multiscan -M with list-scan -L and new scan/list syntax par=a:delta:b for both -N and L modes by @willend in #2618mccode.dat in the NeXus-scan case by @willend in #2619mcgui/mxgui: non-numeric entries in nsteps are now deferred to mcrun for interpretation instead of rejected up front by @willend in #2625mcdoc: list %Example: lines in bold by @willend in #2636mcviewtest — tolerate a trailing / in ref path by @willend in #2593SPLIT loop (silently corrupting RNG state), and the Mersenne-Twister seed was never actually applied at start-up due to a stale RNG_ALG check — both fixed by @mads-bertelsen-agentic in #2620COPY(instance) to no longer transfer EXTEND et al. by @willend in #2627 (two affected instruments updated in #2640)mcstas-antlr in McCode GitHub CI by @willend in #2610mcstas-antlr by @willend in #2612.py instrument generated by mccode-pygen by @willend in #2601stdlib:: syntax and mcrun min:delta:max scan syntax by @willend in #2626GETPATH() by @willend in #2609WHEN(...) clause runs once per particle, so precomputing a flag in INITIALIZE beats a strcmp() in TRACEFetchContent integration for Greg Tucker's mcstas-chopper-lib by @willend in #2631, with a test instrument added in #2632mcviewtest by @willend in #2577mpi=2 on macOS also in basictests by @willend in #2586cif2hkl in Test_Powders by @willend in #2634FRMII_SPODI / FRMII_SPODI_MULTI, a powder diffractometer at MLZ Garching (contributed by V. Kochetov, C. Hauf, M. Hoelzel and A. Senyshyn) by @kinetik161 in #2608 — enabled to run on GPU/OpenACC by @willend in #2623PSI_ICON, Radiography_Lithium_Battery, Radiography_Sword) by @willend in #2569mcstas-chopper-lib, see FetchContent integration above): Masked_ESS_butterfly and NXdisk_chopper, with their test/example instruments Masked_ESS_butterfly_image, NXdisk_chopper_display and NXdisk_chopper_image, courtesy of @g5t's mcstas-chopper-lib — installed directly into the normal mcstas-comps/contrib and examples/Tests_optics locations, so they appear in mcdoc/mcgui like any other McStas componentorder parameter by @Lomholy in #2622Vertical_Bender gravity always disabled by @MilanKlausz in #2638nowritefile parameter to all Union loggers and abs_loggers by @mads-bertelsen-agentic in #2607Monitor_nD instances to get rid of timestamps by @willend in #2574MCPL_output -> producing neutrons in instrument coordinate frame by @willend in #2629Abs_objects test on GPU by @willend in #2557Filter.comp: better handling of non-standard input files by @willend in #2552mxcoplot-html McXtrace by @willend in #2589Full Changelog: https://github.com/mccode-dev/McCode/compare/v3.7.9...v3.8.4
Release 3.7.9 marks a milestone for McXtrace that finally gets full support for complex number calculations using MSVC on Windows. We further improve the installation experience on Windows by addition of a new install script for downloading and setting up the MSVC compiler tool chain.
Full Changelog: v3.7.6...v3.7.9
See McStas install pages on GitHub for details
mcgui/mxgui list mode scanning:
mcdisplay/mxdisplay:
pyqtgraph variant:
matplotlib variant:
KDSource.comp is McStas-only for nowFull Changelog: v3.7.1...v3.7.6
USERVARS supported with Monitor_nD (named user0,...,user9)mcdisplay/mxdisplay (e.g. box was not allowed as a comp name)mcdoc/mxdoc can render .tex and .md in addition to .htmlREADME.md generated via this mechanismKDSourceTest_KDSource and the KDSource documentation websiteconda-forge based installations (including macOS and Windows 'installers'conda-forge.ESS_butterfly
DEPENDENCY lineESS_butterfly_Adjustable_PulsePowderN now supports NCrystal cfg-strings.
NCrystal that populates datastructures without intermediate .laz/.lau filescomp=0 modeInhomogenous_incoherent_process in Union from @Lomholy, (via ‘tinyexpr' string-expression inputs) - see rel. test instrumentSpinWave_BCO from @SSBNS - see rel. test instrument.tex snippets from generated via components mcdocFull Changelog: v3.6.14...v3.7.1
What's Changed
(Selected items, please consult the GitHub changelog for full set)
Please consult the GitHub changelog
Full Changelog: v3.6.5...v3.6.14

Dear Colleagues,
In collaboration with the French DIADEM Academy, we invite interested participants to attend the following course in September:
![]() | PHOTONS AND NEUTRONS REALISTIC ARTIFICIAL INTELLIGENCE DATASETS (PaNRAID) | ![]() |
Dates: 21-25 September
Location: Île d’Oléron, France
The course will develop an integrated approach for generating synthetic data for supervised learning. This approach combines multi-scale materials simulations (DFT, MD, XAS spectroscopy) with comprehensive digital twins of experimental X‑ray and neutron facilities, explicitly accounting for instrumental effects and experimental artefacts.
Further information and pre-registration: https://formation.pepr-diadem.fr/formation-panraid
Attached are PDF flyers in French and English.
Best regards,
Peter Willendrup

Dear all,
We have decided to formally declare that we no longer support McStas 2.x and McXtrace 1.x, so user issues with these released will from now on always prompt us to request that you upgrade.
If you are still running such an old release, please upgrade and port your comps/instruments using the information in the use the wiki-based porting-guides
We are of course at your service if you have issues porting your existing code, please create a GitHub issue.
Dear all,
In connection with a user request I realised that occasionally we may all benefit from easier access to old McStas variants.
I have therefore put together a "Best of McStas compilation" - a Linux image with McStas version 1.12c, 2.7.2 and the latest 3.6.8.
You can give the image a quick trial spin via binder:
https://mybinder.org/v2/gh/mccode-dev/jupyter-mcstas-mcxtrace-desktop/HEAD?urlpath=desktop
(will not in practice sustain much actual work / load)
Or alternatively pull docker.io/mccode/mcstas_v1.12c_v2.7.2_v3.6.8:latest via Docker / podman / etc., i.e. something like
podman run -p 8888:8888 docker.io/mccode/mcstas_v1.12c_v2.7.2_v3.6.8:latest
Best and hope this may be useful,
Peter
Screenshot of the running compilation:
What's Changed - Main Changes:
Full Changelog:https://github.com/mccode-dev/McCode/compare/v3.6.1...v3.6.5
Previous news items: 2025, 2024, 2023, 2022, 2021,2020,2019, 2018, 2017, 2016, 2015, 2014, 2013, 2012, 2011, 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002, 2001, 2000, 1999, 1998.