Sortly is a modular C++ sorting algorithm visualizer based on a precomputed step-by-step execution model.
It generates all intermediate states of sorting algorithms in advance and replays them through an interactive UI, enabling smooth visualization, comparison, and analysis of different techniques.
Built with GLFW, OpenGL, Dear ImGui and ImPlot, it focuses on clarity, extensibility, and ease of experimentation with sorting algorithms.
Note
This project is currently under active development. The application is reasonably stable at this stage, but future releases may introduce significant changes.
Sortly separates computing a sort from showing it:
- An algorithm runs once over a copy of the data and records every step as an operation (compare, swap, overwrite, pivot).
- The recorder builds each operation from the real buffer, so recorded values never disagree with what happened.
- A playback replays those operations over its own copy of the data, forward or backward, at any speed.
Issues and pull requests are welcome. If you plan a big change, please open an issue first.
- Commits follow Conventional Commits (
feat,fix,refactor, ...). - Install the pre-commit hooks with
pre-commit install --hook-type pre-commit --hook-type commit-msg.
This project is licensed under the MIT License.
See the LICENSE file for more information.
Sortly bundles the following fonts in assets/fonts/. The license text of each one is shipped next to the fonts, in assets/fonts/licenses/.
| Component | Files | License | License file |
|---|---|---|---|
| Inter | Inter-Regular.ttf, Inter-SemiBold.ttf |
SIL Open Font License 1.1 | Inter-license.txt |
| JetBrains Mono | JetBrainsMono-Medium.ttf |
SIL Open Font License 1.1 | JetBrainsMono-OFL.txt.txt |
| Lucide icon font | lucide.ttf |
ISC (portions MIT, from Feather) | Lucide-LICENSE.txt |
