# ImPlot3D — vendoring notes

3D plotting library for Dear ImGui by Breno Cunha Queiroz, sister project to
[ImPlot](https://github.com/epezent/implot).

- **Upstream:** https://github.com/brenocq/implot3d
- **License:** MIT (see `cpp/vendor/implot3d/LICENSE`)
- **Version:** v0.4
- **Pinned commit:** `41ae3e447c0de20ecab95d38a4b4dc0835a3efc2`
  (2026-04-05, _"chore: bump version to v0.4"_)

The vendor lives as a git submodule in `cpp/vendor/implot3d` and is checked
out at the pinned commit above.

## Files compiled into the `implot3d` CMake target

- `implot3d.cpp`
- `implot3d_items.cpp`
- `implot3d_meshes.cpp`

`implot3d_demo.cpp` and the contents of `example/` are intentionally left
out of the build — kept for reference only.

## Update procedure

```bash
cd cpp/vendor/implot3d
git fetch origin
git checkout <new-commit>
cd ../../..
git add cpp/vendor/implot3d
# Update the pinned commit in this file.
git commit -m "chore(vendor): bump implot3d to <new-commit>"
```

## Used by

- `cpp/functions/viz/surface_plot_3d.cpp` — `ImPlot3D::PlotSurface`
- `cpp/functions/viz/scatter_3d.cpp` — `ImPlot3D::PlotScatter`
- `cpp/framework/app_base.cpp` — creates/destroys the ImPlot3D context
  alongside the ImPlot one.
