ikant: Interactive Kolmogorov-Arnold Networks Toolkit
December 31, 2024 ยท View on GitHub
A simple C++ implementation and visualization of Kolmogorov-Arnold Networks.

Features
- Implementation of Kolmogorov-Arnold Networks (KAN)
- Visualization of network structures and training processes
- GUI for editing network parameters and training settings
- Integration with LAPACK for numerical computations
- Integration with Raylib for graphical rendering
Getting Started
Prerequisites
- C++ compiler
- Make
- LAPACK library
- Raylib library
Building the Project
-
Clone the repository:
git clone https://github.com/huytrinhm/ikant.git cd ikant -
Build the project using Make:
makeYou may need to modify the
Makefileto specify the paths to the LAPACK and Raylib libraries. The files inside this repositorylibdirectory is provided as a reference. -
Download example checkpoint and data files from the releases and place them into the project directory.
Running the Application
After building the project, you can run the application using:
./main.exe
The checkpoint and data format
You may find the development.ipynb notebook helpful in understanding the format of the checkpoint and data files and how to generate them.
Acknowledgements
- pykan: The original Python implementation of Kolmogorov-Arnold Networks. The project at the linked commit was used as a reference for this C++ implementation.
- efficient-kan: An efficient implementation of Kolmogorov-Arnold Networks in Python. The project was used as a reference for the implementation of our C++ version.
- An Introduction to Spline Theory (Michael S. Floater): This document was used as a reference for the understanding of spline theory and the implementation of B-spline in this project.
- Raylib for graphical rendering.
- LAPACK for numerical computations.
- TinyFileDialogs for file dialogs.
Contributing
Since this project is developed as a part of my personal research, I am not actively looking for contributions. However, feel free to fork the repository and make your own modifications.