PTStudio is a light-weight, modular, and extensible 3D scene editor and renderer written in C++17. It is my personal hobby project to learn modern C++, OpenGL, Vulkan, and other graphics-related technologies. It is also a playground for me to experiment with new ideas and techniques.
PT.Editor.2023-11-27.18-27-16.mp4
- This project uses a hermetic tooling initialization process where all the tools are pulled in as Python packages, and python is used to perform various tasks like building, formatting, etc.
- To see the available tool commands, run
pts.cmd --help.
- Run the repository tooling entrypoint
pts.cmd buildto bootstrap the build system (if needed) and build the project. - Run the repository tooling entrypoint
pts.cmd testto run the unit tests.
- C++ Compiler Toolchain (GCC, Clang, MSVC, etc.)
- GPU driver with Vulkan and OpenGL support
- Make sure to clone the repository with all submodules:
git clone --recursive [repo url]- If you've already cloned without
--recursive, you can fetch submodules afterward with:
git submodule update --init --recursive- [ ] Rework the crazy reflection system
- [ ] Better scene graph (consider OpenUSD)
- [ ] Reduce the cumbersome use of `tl::expected` and use exceptions in subsystem internals
- [ ] Renderers should be DLLs (this might be moot if moving to OpenUSD)
- [ ] Editing Improvements
- [ ] put mesh loading in a separate thread
- [ ] adaptive grid resizing
- [ ] Ctrl+S to save scene (first time a file dialog will pop up, then subsequent saves will save to the same file)
- [ ] Ctrl+D and Ctrl+C to duplicate selected objects
- [ ] Ctrl+Z and Ctrl+Y to undo/redo
- [x] camera should move faster the further away it is from the center


