Directory graphics/pgf/contrib/lua-tikz3dtools
Package Name: lua-tikz3dtools Package Version: 3.0.0 (2026-04-12) Repository: https://github.com/Pseudonym321/lua-tikz3dtools-offline Contact: https://github.com/Pseudonym321/lua-tikz3dtools-offline/issues Author: Jasper Nice License: LaTeX Project Public License 1.3c or later
Description: lua-tikz3dtools is a LuaLaTeX toolkit for making 3D illustrations with TikZ. It focuses on properly occluded 3D mathematical figures composed of line segments and triangles, including tessellated surfaces and curves.
Contents:
src/contains the package sources.doc/contains the documentation sources and the compiled PDF manual.
Change Log:
v1.0.0:
- Robust triangle sorting, rudimentary line segment sorting.
- Division by zero handling.
- Clipping of individual planes by rectangular prisms.
- Geometric vector commands.
v1.1.0:
- Robust primitive sorting, so long as they do not intersect, and do not cyclically overlap.
- Arrow tips for curves
v2.0.0:
- nearly robust clipping
v2.0.1:
- robust partitioning of tiles which are capable.
v2.1.0: November 22, 2025
- filterinng of surfaces clipped by planes.
- partitioning
- bug involving partitioning in perspective
- bug involving partitioning into degenerate triangles (edge case)
v2.2.0 November 29, 2025
- lighting added
- luatikztdtoolspicture environment added
- small bug fixes
v2.3.0 January 22, 2026
- went back to the tikz environment
- made the code object oriented
- improved the lighting
v3.0.0 April 12, 2026
- split monolithic Lua file into modules (vector, matrix, geometry, scene)
- sandboxed load() environment for user expressions
- fixed globalseen variable leak
- added 2D grid spatial index for occlusion sorting
- cached bounding boxes throughout pipeline
- unchecked fast constructors for hot-path allocation
- removed gratuitous deepcopy calls
- unified duplicate hlinesegmentpointintersecting functions
- removed duplicate appendsolid and applyfilters
- fixed 2x2 determinant sign bug
- fixed reciprocatebyhomogeneous typo
- added TikZ key defaults (transformation, filter, samples)
- added usamples/vsamples/wsamples validation (>= 2)
- fixed appendlight docs (key is v, not x/y/z)
- reset lights after displaysimplices
- partitionsimplicesbyparents skips self and checks screen-space overlap
Future goals:
- calculus based automatic sampling of surfaces
Download the contents of this package in one zip archive (274.8k).
lua-tikz3dtools – Not-so-experimental LuaLaTeX package for 3D illustrations in TikZ
This package improves on existing 3D capabilities in TikZ. In particular, the package enables z-sorting of multiple triangulated parametric objects and uses elaborate clipping and occlusion logic. The parametric objects are defined using pgfkeys, and endeavor to enable user customization.
All of the 3D math is handled in Lua, and the results are projected onto the 2D TikZ canvas. The user is enabled to use linear, affine and projective transformations on their parametric objects.
| Package | lua-tikz3dtools |
| Repository | https://github.com/Pseudonym321/TikZ-Animations/tree/master1/TikZ/lua-tikz3dtools |
| Version | 3.0.0 2026-04-12 |
| Licenses | The LaTeX Project Public License 1.3c |
| Maintainer | Jasper Nice |
| Contained in | TeX Live as lua-tikz3dtools MiKTeX as lua-tikz3dtools |
| Topics | 3D Graphics PGF TikZ Graphics LuaTeX |