MathMod 11.1

MathMod is a portable interactive plotting and graphing program for Windows, Linux, MacOSX and many other platforms. MathMod allows to plot 3D mathematical surfaces, described by implicit or parametric equations, and offers a very large database of model samples that can be generated with it. It's Free and Open Source under the terms of the GPL licence version 2 or later.

Tags c++ qt json mathematics plotting 3d 4d scriptable animation visualization surfaces javascript education modeling
License GNU GPL
State stable

Recent Releases

11.118 Jun 2021 03:22 major feature: Welcome to the realm of complex numbers with MathMod! Change-log for MathMod-11.1 (16/06/2021) 1) Support of graphing functions with complex numbers Z=u+iv in 3D and 4D spaces (demo scripts: "Complex3D_xx" and "Complex4D_Saddle") 2) Added support for HSV (hue, saturation, lightness) coloring model (script: "Complex_Domain_Coloring") 3) Texture definitions (RGB and HSV) for parametric surfaces can now be expressed as functions of complex numbers 4) Added a software implementation for the OpenGL variable gl_FrontFacing (fixed an issue with GPU drivers on MacOSX Catalina). The activation of this patch is available from mathmodconfig.js("OpenGlConfig"-- "GL_FrontFacingSupport"=false) or the GUI("Appearance"-- "OpenGL Front Surface Support") 5) Bug-fixes, code optimization and documentation update. For a complete list of changes made during the course of development:
11.009 Mar 2021 14:24 major feature: This release brings the most exciting development since the support of calculations on multi-core processor: MathMod compatibility with OpenGL ES! MathMod can now take full advantage of both modern CPU and GPU et will support embedded and mobile systems (consoles, phones...) Change-log for MathMod-11.0 (08/03/2021) 1)Complete rewrite of MathMod's OpenGL viewer in order to make it OpenGl ES compatible (See MathMod running on a RaspberryPi with RaspberryPi-OS(32 Bit) : 2)Add: possibility to show/hide a selected component , two new scripts ("Groupings of Knots" , "Knotted MΓΆbius strips") and OpenGL diffuse/ambient lights setting. 3)Bug-fixes, code optimization and documentation update. For a complete list of changes :
10.116 Dec 2020 10:44 major feature: Change-log for MathMod-10.1 (14/12/2020) 1) Add user defined variables to reduce processing time ("Arena_02" script, for instance ,is almost four times faster to render than the original "Arena" script) 2) Add 15 new scripts: ("Lissajous knots", "Granny knot", "Gyroid fundamental patch", "Viviani curve", "Lissajous", "Interlocked knots(p,q)", "Interlocked Toris", "Tree of life", "Filament Cube"...) 3) Add Texture support for new parameters, possibility to resize up/down the exported meshes, OpenGL specular and shininess setting in the configuration file. 4) Bug-fixes, code optimization and documentation update. For a complete list of changes :
1010 Mar 2020 00:25 major feature: Change-log for MathMod-10 (08/03/2020) 1) Bug-fixes, new integrated scripts and major changes to MathMod's core program and internal functionalities. 2) Support for mathematical objects made up of parametric and implicit surfaces. 3) More efficient use of the system resources (memory cpu). 4) Added 10 new scripts: "NKlein_wire_02", "Triaxial weave", "Icosahedral_crystal", "CSG", "Moebius_Strip", "Wonder_Tree", "Happy_New_Year", "Trefoil_knot", "patriceJ", "Clebsch_01". 5) Added documentation (version 1.0) For a complete list of changes :
9.126 Apr 2019 20:26 major feature: Change-log for MathMod-9.1 (24/04/2019) 1) Five bugs correction. 2) Added four new scripts: "Apples on Moebius" animation script, "Scosta" for Costa_like minimal surfaces, "Knot_pq" script to generate all kind of (p,q) knots and the "knot_wireframe" script. 3) Code Conversion from old C-style casts to C++ casts. 4) Code and scripts cleaning and optimization. For more informations:
9.013 Jan 2019 01:51 major feature: Change-log for MathMod-9.0 (18/12/2018) 1) Scripts calculations enhancement for parametric and implicit surfaces. MathMod-9.0 is now 1.5 to 10 times faster than previous releases, especially for scripts with large and unstructured (ie: without any function definition) mathematical formulas. 2) Added text information window to give the user an indication of the progress of an operation(threads number, processing time...) 3) Added five new integrated scripts (356 in total)) 4) Automatic detection and allocation of the right number of threads supported by the hardware (you can however set a desired number of threads from mathmodconfig.js) 5) Code cleaning and optimization. Please report any bug or malfunction. For more informations:
8.003 Jun 2018 19:52 major feature: Change-log for MathMod-8.0 (29/05/2018) 1) Add new tool for scripts selection on one or multiple JSON scripts fields. 2) Add option to export OBJ files with vertex colours. 3) Add new scripts to generate math models with chained patterns (Chained Cylinder/Sinusoid). 4) Corrections of more than 30 bugs related to MathMod allocated resources. 5) MathMod's viewer enhancement (better integrated progress bar, add bounding box, video memory usage optimization...). 6) Code cleaning and optimization. Please report any bug or malfunction. For more informations:
7.019 Feb 2018 03:50 major feature: Changelog for MathMod-7.0 (11/02/2018) 1) Add support for complex scripts involving more than 100 functions declarations (previous versions were practically limited to less than 12 functions declarations). 2) Add six new scripts to generate plain-weave and wireframe patterns over any parametric surface (added at the bottom of the parametric models list (Sinus/Catenoid/Knots)_Plain_weave and wireframe_(sinus/shell/knots) ) . 3) Add new function CmpId(n) to return the index of the component under calculation (see "Wireframe_Shell" script). 4) Code cleaning and optimization. For more informations, please visit our bug tracker system on SourceForge:
6.110 Oct 2017 20:12 major feature: Changelog for MathMod-6.1 (08/10/2017) 1) Localization support for German, French (and all Localizations that mainly define , as the decimal separator key symbol). Also, an automatic detection of the localization can be activated/deactivated by setting the parameter "Localization "AutomaticDetection" in the mathmodconfig.js file (by default, it s set to true ). 2) Added: "Progress bar" to show calculations progress in real time. 3) Three bugs correction, code cleaning and optimization.Changelog for MathMod-6.0 (05/09/2017) 1) Multicores calculation support. By default, the number of threads is set to 4 for a maximum number of 64. (see "ThreadsConfig" section in mathmodconfig.js or "Appearance- Threads" tabulation) 2) MathMod's viewer improvement: Add possibility to load vertices on the OpenGl's server side 3) Add OpenGl specular shininess parameters. 4) Code/scripts cleaning and optimization.
4.116 Mar 2016 06:08 major feature: Changelog for MathMod-4.1 (14/03/2016) 1) Add tools to create/edit/delete sliders without having to edit the script manually: see this youtube video 2) Localization Support for decimal separators as Comma (,) or Point (.) The decimal separator is set by the field "DotSymbol" in the "mathmoconfig.js" file. 3) By default MathMod will use the Fusion/Dark theme but you can define your own style/theme with the "mathmoconfig.js" file. Windows installer will also create a directory "MathMod-4.1(Win64)" in the Desktop folder (with three JSON files) and will use it as it's working directory so It can then be used, for example, to fine-tune MathMod's configuration. 4) Four new MathMod scripts, for a total of 341 integrated scripts. 5) Five Video Tutorials to quickly learn how to use some MathMod features. Videos available on MathMod's FaceBook page: and Youtube : 6) Bug fix and code optimization: All your comments and suggestions are welcome.
4.014 Feb 2016 19:49 major feature: Changelog for MathMod-4.0 (08/02/2016) 1) Add user defined parameters (up to 20) with sliders linked to them for real time mathematical models exploration (see "fhelix1" script video ) The sliders properties (min, max, step and initial position) are defined in the script but can be edited with a new MathMod module (see "Sliders" tabulation). 2) Add 152 new advanced script examples (for a total of 332) . They are also kept in a separate MathMod file collection "advancedmodels.js" because it's a separate project that is updated more often than MathMod itself. You can follow the updates on my Google+ ( ) and Facebook ( ) pages. 3) Implementation of some PovRay internal functions as MathMod scripts and also MathMod internal functions. The functions are : fhelix1,fhelix2,f_hex_y,fmesh 4) Code cleaning and optimization.
3.120 Mar 2015 01:55 major feature: Changelog for MathMod-3.1 (11/03/2015) 1) Add Perlin/Worley Noise (NoiseP and NoiseW) functions support for parametric surfaces: (see "FresnelNoise", "BreatherNoise" and "TorusNoise" examples) 2) Bug fixes
3.006 Mar 2015 04:05 major feature: Changelog for MathMod-3.0 (04/03/2015) 1) Add new Noise functions support for implicit surfaces: NoiseP (for Perlin) and NoiseW (Worley) (see CellNoiseSchwarz example) 2) Add new tool for texture and Noise parameters modification 3) Bug fixes
2.321 Feb 2015 01:08 major feature: Changelog for MathMod-2.3 (31/01/2015) 1) Add Pigment/Texture/Noise support (see Pigment_Duplin, Texture_Duplin and Noise_Duplin scripts) 2) OpenGl Animation and morph effect enhancement (see the "BlackHole" script example) 3) New examples (176 scripts) 4) Add 18 integrated Textures/Pigments 5) Bug fixes (Parametric surfaces export to OBJ)
2.207 Jan 2015 02:58 major feature: Change log for MathMod-2.2 (04/01/2015) 1) Solid texturing support (see the "BlackHole" script example) 2) View and edit Functions/Constants/variables definitions in dedicated tables 3) Add possibility to define the CND equation for each component 4) Add X, Y and Z Axis rotations controls 5) Add "Save to file" for the current Math Model 6) Add time step controller for the morph effect 7) OpenGL rendering enhancement 8 ) New examples (171 scripts) 9) Add 8 integrated Solid textures
2.014 Nov 2014 15:05 major feature: Added parametric surfaces mesh points selection with the CND property. Better support of constantes and functions definitions for the JSON scripts. Added more than 28 new examples (168 examples in total). Some bug fixes and code cleaning. A build for MacOSX64 available for download.