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 global_seen variable leak
- added 2D grid spatial index for occlusion sorting
- cached bounding boxes throughout pipeline
- unchecked fast constructors for hot-path allocation
- removed gratuitous deep_copy calls
- unified duplicate hline_segment_point_intersecting functions
- removed duplicate append_solid and apply_filters
- fixed 2x2 determinant sign bug
- fixed reciprocate_by_homogeneous 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
- partition_simplices_by_parents skips self and checks screen-space overlap

Future goals:
- calculus based automatic sampling of surfaces
