$ show FoundryMC/Veil
Veil is a client-side Minecraft modding library for Fabric and NeoForge that provides advanced rendering capabilities to mod developers. In production it implements a custom shader pipeline: GLSL preprocessing and injection into vanilla and Sodium shaders, dynamic buffer outputs for deferred-style rendering, JSON-defined shader programs, and a caching shader compiler. It also manages advanced framebuffers, post-processing pipelines (bloom, composite, first-person), custom render types, and GPU light renderers for point, area, spot, and directional lights. Beyond core rendering, Veil ships data-driven effects: the Quasar particle system with modular init/update/render/force modules, Flare shell-based effects with controller/modifier properties, Necromancer skeletal animation, and screen shake. It includes developer tooling such as ImGui inspectors, resource editors, and hot reload, plus a resource management layer that treats shaders, framebuffers, render types, and textures as first-class reloadable assets. The project is structured as a common API/impl core with separate Fabric and NeoForge loader modules, service-loaded event platforms, and codec-based resource serialization. This is not a data research repository; although it uses JSON assets and codec-driven definitions, it is fundamentally an application library for game rendering. The code is actively maintained on the 1.21 branch, with the main risks being the large mixin surface into Minecraft/Sodium/Iris internals and duplicated platform-specific compatibility code.
The LLM identified 5 files worth highlighting for reuse:
Self-contained FastNoiseLite implementation (Perlin, Simplex, Cellular, domain warp) with a Mojang Codec. It has no internal Veil dependencies and can be extracted into any Java/Minecraft project needing deterministic procedural noise.
Enum-based easing function library with serialization support. Generic tweening/transition utility that can be reused independently of Veil for animations and UI.
Utility codecs for JOML vectors/matrices, single-or-list fields, and registry/legacy bridging. Demonstrates a clean pattern for reusable codec helpers in codec-driven Java applications.
Stack-based scissor region management with scaling and safe push/pop. Isolates a common OpenGL state pattern into a small utility that can be lifted into any rendering engine.
Fluent builder for OpenGL vertex arrays with custom VBOs, index buffers, and instanced attributes. It abstracts legacy/DSA differences and is a solid reusable pattern for low-level GL vertex setup.