Hi Hans,
I have now repeated the tests under WSL/Linux, using a separate LMTX
installation so as not to interfere with my usual ConTeXt setup.
The test environment was:
*
ConTeXt LMTX: |2026.07.29 11:46|
*
LuaMetaTeX: |2.11.09|
*
platform: |linux-64| under WSL
*
processor: AMD Ryzen 5 5600
*
memory: 32 GB
I copied the relevant files into a separate test directory and compiled:
|context luametafun-threed.tex context luametafun-voronoi.tex |
For the 3D test, I also copied |luametafun-threed-sphere.stl| beside the
source file.
Both documents compiled successfully:
*
|luametafun-threed.tex|: 15 pages
*
|luametafun-voronoi.tex|: 10 pages
The 3D output looks very good. The Menger sponge, parametric spheres,
postprocessed images, implicit surface, plane and intersection examples
were all rendered successfully.
For |luametafun-threed.tex|, the second ConTeXt run reported:
|MetaPost: 2.603 seconds ConTeXt runtime: 3.143 seconds 15 processed and
shipped pages Lua memory maximum: 170 MB |
The complete command, measured with |/usr/bin/time -v|, took:
|Elapsed time: 12.25 seconds Maximum resident set size: 1,462,168 kB |
So the peak resident memory was about 1.39 GiB. This seems consistent
with the most demanding implicit/intersection example, for which the log
reports cleaning up about 1.05 GB of temporary memory.
Some individual timings were:
|Menger sponge: 2,400 triangles about 0.65 seconds Parametric sphere:
20,000 triangles about 0.14–0.16 seconds Implicit surface: 937,620
vertices 312,540 triangles mesh generation: 1.797 seconds |
The Voronoi document also compiled correctly. Its ordinary Voronoi and
Delaunay operations are very fast, generally in the millisecond range.
The more demanding stippling examples took about 0.94 seconds for
triangles and cells, while the CVD examples remained around 0.08 seconds.
The overall performance under WSL is very close to the native Windows
results. The 3D run is slightly faster internally under WSL, while the
Voronoi timings are almost identical.
I noticed the same minor points as under Windows:
1.
The log reports:
|modules > '3d' is not found |
and later:
|1 missing (*-3d) |
However, the actual 3D code is loaded successfully through
|mlib-thr.lmt| and |mp-thrd.mpxl|, and the rendering works.
2.
One internal cross-reference remains unresolved in the 3D document.
3.
The STL example still reports under WSL:
|mplib: run script: cannot open : No such file or directory |
even though |luametafun-threed-sphere.stl| is present beside the source
file. The rest of the document compiles normally, so this seems to
concern only the external STL loading example or its path resolution.
As a first conclusion, the rendering quality is excellent and the
performance is very good on this machine. The memory usage is
significant for the largest example, but entirely manageable with 32 GB
of RAM.
I will next repeat the same tests under native Ubuntu on the same
hardware, which should provide a useful comparison with both Windows and
WSL.
JP
Le 29/07/2026 à 12:57, Jean-Pierre Delange via ntg-context a écrit :
Hi Hans,
I installed the new ConTeXt LMTX version in a separate Windows
directory, so as not to interfere with my existing installation:
|C:\Users\adeim\context2026-29-07|
The version used for the test was:
*
ConTeXt LMTX: |2026.07.29 11:46|
*
LuaMetaTeX: |2.11.09|
*
platform: Windows 11, win64
*
processor: AMD Ryzen 5 5600
*
memory: 32 GB
I then copied |luametafun-threed.tex| to a separate test directory and
compiled it with:
|context luametafun-threed.tex |
The compilation completed successfully and produced a 15-page PDF. The
3D examples that were rendered — including the Menger sponge and the
parametric and postprocessed spheres — look very good.
The final statistics were:
|MetaPost: 3.051 seconds Total ConTeXt runtime: 3.760 seconds 15
processed and shipped pages Lua memory: 169 MB used, 173 MB maximum |
Some individual figures were also quite fast:
|Menger sponge: 2,400 triangles rendering time: 0.612 seconds
Parametric sphere: 20,000 triangles rendering time: about 0.145–0.149
seconds |
The log also reports substantial temporary memory clean-ups, for
example about 160 MB for the Menger sponge and about 412 MB for the
parametric spheres. The more complex implicit/intersection example
reaches roughly 1 GB of temporary data, as described in the manual.
Nevertheless, the complete document compiled quickly on this machine.
I noticed three minor issues:
1.
At the beginning of the run, ConTeXt reports:
|modules > '3d' is not found |
and the final statistics mention one missing module, |*-3d|. However,
the internal 3D LuaMetaFun support is loaded correctly through
|mlib-thr.lmt|, and this does not prevent the document from compiling.
2. One internal reference remains unresolved:
|fig:threed:process:3 |
which appears as “Figure ??” in the PDF.
3.
Near the end of the compilation, the log reports:
|luatex warning > mplib: run script: cannot open : Invalid argument |
I had copied only |luametafun-threed.tex| to the test directory, so I
suspect that the final STL example could not find
|luametafun-threed-sphere.stl|. The PDF was still produced, but the
last STL figure was not rendered correctly. I will repeat the test
after copying the accompanying STL file as well.
As a first impression, the rendering performance on this Windows
machine is very good, and the visual quality of the generated bytemaps
is excellent.
I am now preparing the same separate installation and test under WSL
and native Ubuntu, so that I can compare the three environments on the
same hardware.
Best wishes,
Jean-Pierre
Le 29/07/2026 à 11:57, Hans Hagen via ntg-context a écrit :
Hi,
I uploaded a new context version. Already for a while we have some
ways to render #D graphics but the manual is pending so we keep a low
profile. However, you can play with it and can find some information
in luametafun-threed.tex (which you can compile).
As usual with graphics, we hook this into MetaPost so that we can mix
with other graphics, although for MetaPost of course it's just some
abstraction.
We focus on parametric, implicit, plane and intersections. The
results are rather high quality bytemaps so they are quite efficient.
Of course there is some runtime involved but one can cache. We are
curious to know how performance is perceived because my 2018 laptop
is not the best one to measure. Stippling is also possible. There are
no dependencies on additional tools.
One of the features is that we can import so called stl files (e.g.
from mapple or mathematica) but we only did limited tests. Again,
more info in the luametafun part of the manual; the more extensive
manual will become available around the meeting, given that we have
time. We're curious if users (if there are any) can test this.
There are some postprocessing capabilities and Keith is exploring
textures and animations, again something for a dedicated manual and
later (but tests look stunning).
A second new feature, a 2D side effect of 3D, is that we support
voronoi rendering as described in luametafun-voronoi.tex and if there
is enough interest we can look into 3D. First we need to know about
applications in documents (there are plenty of examples in nature
once you know about it).
All is of course still somewhat experimental but the interfaces are
okay. To what extend we will speed up matters (for voronoy) depends
on usage. On a modern macine (we suppose) all is fine anyway btu we
simply have no clue about possible user applications.
Hans (with Mikael and Keith)
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
If your question is of interest to others as well, please add an
entry to the Wiki!
maillist : [email protected] /
https://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl
webpage : https://www.pragma-ade.nl / https://context.aanhet.net
(mirror)
archive : https://github.com/contextgarden/context
wiki : https://wiki.contextgarden.net
___________________________________________________________________________________
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the
Wiki!
maillist :[email protected]
/https://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl
webpage :https://www.pragma-ade.nl /https://context.aanhet.net (mirror)
archive :https://github.com/contextgarden/context
wiki :https://wiki.contextgarden.net
___________________________________________________________________________________
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the
Wiki!
maillist : [email protected] /
https://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl
webpage : https://www.pragma-ade.nl / https://context.aanhet.net (mirror)
archive : https://github.com/contextgarden/context
wiki : https://wiki.contextgarden.net
___________________________________________________________________________________