Welcome to the VibeyMapTools documentation hub. This page is your neon sign to the docs, the quick-start spells, and the "wait what does that flag do?" rabbit hole. 🐇🔮
| Document | Description |
|---|---|
| README.md | Project overview and quick start |
| BUILDING.md | Compilation instructions for all platforms |
| CHANGELOG.md | Version history and release notes |
| Tool | Documentation | Description |
|---|---|---|
| vmt-bsp | qbsp.rst | BSP compiler - converts .map to .bsp |
| vmt-vis | vis.rst | Visibility compiler - calculates PVS |
| vmt-light | light.rst | Light compiler - calculates lightmaps |
| vmt-bspinfo | bspinfo.rst | BSP information utility |
| vmt-bsputil | bsputil.rst | BSP manipulation utility |
| vmt-maputil | maputil.rst | Map file Lua scripting tool |
| vmt-preview | lightpreview.rst | Real-time lighting preview (experimental) |
The complete documentation is available in the docs/ folder and at github.com/themuffinator/VibeyMapTools.
Same workflow, new name, bonus polish. The big changes are mostly naming + release tooling:
qbsp/vis/light->vmt-bsp/vmt-vis/vmt-light- All binaries are
vmt-prefixed to differentiate from ericw-tools (includingvmt-maputilandvmt-preview) - CI-built packages + semantic versioning
- Quake II + Remaster support is unchanged (
-q2bsp,-lightgrid,-world_units_per_luxel) - Upstream docs still apply: https://ericwa.github.io/ericw-tools/ 📚
Rename cheat sheet (old -> new):
| ericw-tools | VibeyMapTools |
|---|---|
qbsp |
vmt-bsp |
vis |
vmt-vis |
light |
vmt-light |
bspinfo |
vmt-bspinfo |
bsputil |
vmt-bsputil |
maputil |
vmt-maputil |
lightpreview |
vmt-preview |
vmt-bsp mymap.map # Compile geometry
vmt-vis mymap.bsp # Calculate visibility
vmt-light mymap.bsp # Calculate lightingvmt-light -extra4 -bounce 2 mymap.bspvmt-light -gpu -extra4 -denoise mymap.bspLeverages NVIDIA OptiX for massively parallel raytracing. Requires:
- NVIDIA GPU with RTX cores
- CUDA Toolkit
- OptiX SDK 7.x
Uses Intel Open Image Denoise (OIDN) to clean up stochastic noise in lightmaps. Best with high sample counts or bounce lighting.
Keeps caches so you can relight fast without reprocessing everything.
Simulates indirect illumination by bouncing light off surfaces. Higher values = more realistic but slower.
Generates high dynamic range lightmaps for engines that support it.
Turn any texture into an emissive light source by naming it in a light entity's _surface key.
Randomized sampling for complex scenes - trades some noise for significantly faster compile times.
| Game | Status |
|---|---|
| Quake | ✅ Full support |
| Quake II | ✅ Full support (-q2bsp) |
| Quake II Remaster | ✅ Supported (-lightgrid, etc.) |
| Hexen II | ✅ Supported |
| Half-Life | 🧪 Experimental |
# Development (fast)
vmt-bsp mymap.map
vmt-vis -fast mymap.bsp
vmt-light mymap.bsp
# Release (high quality)
vmt-bsp mymap.map
vmt-vis mymap.bsp
vmt-light -extra4 -bounce 1 -soft mymap.bspvmt-bsp -q2bsp mymap.map
vmt-vis mymap.bsp
vmt-light mymap.bspvmt-bsp -q2bsp mymap.map
vmt-vis mymap.bsp
vmt-light -lightgrid -world_units_per_luxel 8 mymap.bspFor contributors with release privileges, here is the end-to-end flow.
1) Update version + notes
- Edit
VERSIONwith the next release number (example:2.1.1). - Update
CHANGELOG.mdanddocs/changelog.rst.
2) Build + test locally
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release
ctest --test-dir build --output-on-failure --build-config Release3) Create a local package (optional but recommended)
cmake --build build --target package --config Release4) Commit + tag
git add VERSION CHANGELOG.md docs/changelog.rst
git commit -m "chore: release vX.Y.Z"
git tag -a vX.Y.Z -m "Release vX.Y.Z"
git push origin main
git push origin vX.Y.Z5) Publish a GitHub Release
- Either publish a release on GitHub (using the tag), or
- Let the tag push create a draft release via GitHub Actions.
The release workflow builds packages on Windows/macOS/Linux and attaches them to the release.
- Issue Tracker: Report bugs and request features on GitHub
VibeyMapTools is licensed under the GNU General Public License v3.
Based on ericw-tools by Eric Wasylishen.