Change Log

== vkmmc 0.5.0 (Kylin, beta), Qianqian Fang <q.fang at neu.edu> ==
 2026-10-27 [5a2796a] [test] add MCX, MMC and CSG benchmark inputs checked against references
 2026-10-26 [83b5f8b] [doc] update ChangeLog
 2026-10-26 [81e0309] [speed] remove --atomic float: the 64-bit fixed-point sums are exact and faster
 2026-10-26 [65ab66a] [doc] update ChangeLog
 2026-10-26 [a67ecc5] [doc] README: dynamic load balancing, auto batches, deposit buffering, --atomic float
 2026-10-26 [72283af] [test] batch size and thread count invariance, auto batches, --atomic float
 2026-10-26 [abba6ee] [speed] dynamic photon claiming, per-photon RNG seeds, auto batch sizes, deposit buffering, --atomic float
 2026-10-26 [e42923c] [doc] update ChangeLog
 2026-10-26 [c6a1bba] [doc] README: entry conventions of outside sources, sources on a surface, DoSpecular, multi-source rows
 2026-10-26 [0909da7] [test] tests for sources outside or on a surface, DoSpecular and typed multi-source rows
 2026-10-26 [f9315db] [feature] MCX source conventions: air time, relaunch, DoSpecular, sources on a surface, typed multi-source rows
 2026-10-26 [6f1a99d] [speed] compile only the source code a run uses: specialization constants and bound values
 2026-10-26 [796dd4f] [doc] update ChangeLog
 2026-10-26 [5604903] [doc] README: the source types, patterns, multiple sources and the launched-energy normalization
 2026-10-26 [074a738] [test] unit, functional and fuzz tests for the source types
 2026-10-26 [16332d2] [feature] all 18 MCX/MMC source types, shared patterns and multiple sources
 2026-10-26 [cd08056] [ci] Windows lavapipe: native paths for python, strip CR from its output
 2026-10-26 [ac0959f] [feature] load MMC wide-field meshes: negative labels are the background
 2026-10-26 [5831a32] [ci] pass GITHUB_TOKEN to install-vulkan-sdk-action: unauthenticated API calls hit the rate limit
 2026-10-26 [be70296] [ci] Windows: Windows-style PATH entries; static libgcc only on Linux
 2026-10-26 [19715b2] [ci] find vkmmc.exe without ls: under pipefail a missing path ended the step
 2026-10-26 [fc265c7] [bug] cylinder curvature: detect nodes on the axis relative to R
 2026-10-26 [6605b05] [ci] build mcx/mmc-style packages and upload them to the download server
 2026-10-26 [8c46df0] [ci] Windows (MSVC), macOS 15 Intel and macOS 14 (arm64) jobs
 2026-10-26 [d1ae71e] [build] portability for Windows (MSVC) and macOS
 2026-10-25 [31e3336] [doc] README: lavapipe speed
 2026-10-25 [20eca7f] [clean] declare the face buffer as a struct with uint labels and vertex indices
 2026-10-25 [557d49e] [bug] tilt the sphere tessellation so no vertex lies on an axis through the center
 2026-10-25 [c1f8fa3] [doc] README: prebuilt manylinux2014 binaries and how to build them
 2026-10-25 [fb3af20] [ci] build the release binaries in manylinux2014 (glibc 2.17)
 2026-10-25 [963f6ee] [doc] README: build and run requirements, CMake, OptiX headers, CI
 2026-10-25 [6471ee6] [ci] GitHub Actions: build, unit, functional, OptiX and fuzz jobs
 2026-10-25 [d50a0bc] [clean] avoid a -Wdangling-reference warning of gcc 13 in parse_shapes
 2026-10-25 [9418335] [build] add a CMake build for both backends and the tests
 2026-10-25 [a269d1b] [optix] build with the OptiX headers only, link the CUDA runtime statically
 2026-10-25 [4aeca62] [release] set version to 0.5.0 (Kylin, beta), add citations
 2026-10-25 [2dee4a7] [test] test GPU selection and user-supplied SPIR-V kernels
 2026-10-25 [1c0dfea] [doc] add README, ChangeLog, AUTHORS; LICENSE -> LICENSE.txt with a header
 2026-10-25 [22138de] [test] libFuzzer harnesses and a JSON-aware mutation fuzzer
 2026-10-25 [48a3ad9] [bug] fix input-validation and performance bugs found by fuzzing
 2026-10-25 [677bbda] [test] host unit tests and an extended GPU functional test suite
 2026-10-25 [eb0066a] [optix] port the OptiX backend to the shared host layer and kernel fixes
 2026-10-25 [3a17a82] [feat] shared validated host layer, runtime kernel selection, exact and faster Vulkan kernel
 2026-10-25 [b177b3f] [build] vendor zmat (zlib/gzip) with multi-threaded block deflate, add .gitignore
 2026-03-29 [4311b6a] [bug] fix disk source straight line
 2026-03-29 [4108dfb] [bug] reseed for each batch
 2026-03-29 [2857e89] [feat] add volume rendering shaders, allow 3D rotation
 2026-03-29 [4dbc873] [feat] allow to render MIP of the fluence distribution with --show
 2026-03-28 [da05431] [feat] support --show, rendering input and output, support lens
 2026-03-28 [08adebc] [feat] add --show
 2026-03-27 [f7dca18] [feat] use mmc flag names
 2026-03-27 [62d266f] [feat] support lens; export ray trajectories
 2026-03-27 [4e73f17] [feat] use xxd to build the compiled shader into the binary
 2026-02-10 [f853d37] [opt] optimizing vulkan kernel using USE_CSG and USE_CURVATURE macros
 2026-02-09 [3687a2e] [test] add initial unit tests
 2026-02-09 [1f24f20] [speed] use macro to improve speed on mesh input
 2026-02-09 [d0076b8] [optix] can build and run, works for both csg and mesh inputs
 2026-02-08 [5a5dbe0] [bug] fix surface normal orientation, fix csg normal error
 2026-02-08 [f32632e] [shape] forcing flat-face normal
 2026-02-08 [f3e2384] [optix] add optix port
 2026-02-07 [45463fe] [feat] add --debugcurv to debug curvature accuracy
 2026-02-07 [8b35674] [bug] flip curvature normal, obtain correct results
 2026-02-07 [bfc1407] [feat] add principal curvature computation unit
 2026-02-07 [3e257a7] [feat] support principal curvature, add -m for surface mesh density
 2026-02-07 [174935d] [feat] support shape based CSG ray-marching, use state tracking for overlaps
 2026-02-06 [efad585] [bug] flipping material front and back labels, fix nan in absorption
 2026-02-05 [5da2538] [kernel] kernel update with meaningful variable names
 2026-02-05 [f815771] [format] reformat code using astyle
 2026-02-05 [f6a5082] [init] initial import of vkmmc
 2026-02-05 [4f3d42e] Initial commit
