Open comments for this post
Project Update
Finally Building the Viewer
This update focused on creating viewer.py. A lot of the triangle calculation code was able to be reused from geometry.py, which made development like 1000x easier and let me focus on building the interface.
- Built the first working version of the viewer using Dear PyGui.
- Added support for importing the JSON files generated by Project Kobon.
- Added a visualizer that draws line arrangements and the triangles they create.
- Added controls for switching between different saved results.
Open comments for this post
Project Update
Improving the Main UI
This update focused on improving the UI of main.py.
- Redesigned the terminal UI to make it cleaner and easier to navigate.
- Made menu options more readable and easier to understand.
- Improved the overall look of the program without changing its functionality.
Open comments for this post
One small step for man, one giant leap for mankind
Ok, not really, but this is the first working version of my pipeline :)
This update focused on creating the reporting system and getting the different parts of the project working together.
- Created reporter.py, which sends solver results to a Discord webhook.
- Added support for saving the best arrangements as a JSON file.
- Included information like the score, line angles, and line offsets in the output data.
- Added a results summary showing the upper bound, line count, goal and top scores found by the solver.
- Tested the full pipeline from generating arrangements to receiving results through Discord.
This is the first point in time where Project Kobon can complete a full run and produce a usable output. My next update will be building the viewer so the generated arrangements can be visualized instead of only being viewed as raw data.
Don’t even try to use the webhook URL. I already deleted it.
Open comments for this post
Project Update
Adding Simulated Annealing
This update was mainly about adding simulated annealing to Project Kobon. Before this, the project could generate random arrangements, but it could not actively search for better solutions.
- Created annealing.py, which contains the simulated annealing solver used to search for improved arrangements.
- Connected main.py to the new solver so users can run simulated annealing directly from the program menu.
- Updated some function names to make the code easier to read and maintain.
- Added support for running the solver for a fixed number of iterations or until it reaches a target gap from the theoretical upper bound.
- Tested the project on a freshly reset computer with a new installation of Python and C++. Everything worked correctly, showing that the project can be set up and run on a clean system.
Open comments for this post
Project Update
Building the Geometry System
This update focused on developing the geometry system used by Project Kobon. This system takes an arrangement of lines, finds their intersection points, and counts how many Kobon triangles are present.
- Developed geometry.py, which calculates line intersections and counts triangles in an arrangement.
- Changed the project to use CPU-based calculations with NumPy.
- Added requirements.txt to simplify installation of project dependencies.
- Added a popup window to viewer.py for displaying information and instructions.
- Updated README.md with project information, installation steps, and usage instructions.
Open comments for this post
Project Update
Building the State System
This update focused on creating the state system used by Project Kobon. The state system stores line arrangements and provides a way to make small changes to them.
- Created state.py and the LineState dataclass to store the angle and offset of each line.
- Added createRandomState(), which generates a random arrangement of k lines.
- Added nudge(), which creates a copy of an arrangement and randomly adjusts one line’s angle or offset.
- Updated main.py to work with the new state system.
- Tested the new functions to ensure line arrangements could be created and modified correctly.
Open comments for this post
Project Update
Creating the Viewer
This update focused on creating the first version of the project viewer.
- Created viewer.py and set up a basic DearPyGui window.
- Learned the basics of working with DearPyGui.
- Added the ability to open a separate viewer window from the project.
- Removed config.py because it was no longer needed.
Open comments for this post
Project Update
Creating the Main Program
This update I just built main.py, which acts as the main menu system for Project Kobon.
- Created main.py and added the main menu system.
- Added user input handling for selecting different program options.
- Added basic input validation.
- Added a simple way for users to configure solver parameters from the terminal.
Open comments for this post
Project Update
Writing the README
This update focused on creating the first version of README.md.
- Added an overview explaining what Project Kobon is and its goal.
- Wrote a description of the Kobon Triangle Problem and why it is still unsolved.
- Added information about how the project relates to finding arrangements of lines with many non-overlapping triangles.
- Began documenting how the project will be used and expanded in future updates.
Open comments for this post
Project Update
Setting Up the Project
This is my first devlog :) it will focus on setting up the initial structure for Project Kobon.
- Created the project’s basic file and folder layout.
- Set up the main modules that I will be using throughout development.
- Added the initial imports and project structure.
- Organized the codebase to separate the solver, theory, and viewer components.
- Began planning how the different parts of the project will work together.