You are browsing as a guest. Sign up (or log in) to start making projects!

Project Kobon

  • 12 Devlogs
  • 22 Total hours

Project Kobon is a search program designed to find solutions to the Kobon Triangle Problem, a currently unsolved problem in geometry. The problem asks for arrangements of k lines that produce the maximum number of non-overlapping triangles, and whether it is possible to reach the known upper limits.

Ship #1

Project Kobon is finally shipped!!!

I made a Python project that searches for Kobon triangle line arrangements, saves the best results, and includes a viewer for loading and visualizing the generated JSON files. The hardest parts were getting the solver logic working, building the DearPyGui viewer, and then fighting with PyInstaller to make the .exe. I’m proud that it now has a full loop: run the solver, generate results, open them in the viewer, and share the app without needing Python installed.

  • 12 devlogs
  • 22h
  • 16.89x multiplier
  • 369 Stardust
Try project → See source code →
Open comments for this post

57m 29s logged

Finally Finished the EXE

After a lot of annoying PyInstaller issues, Project Kobon finally works as a standalone Windows executable!!! This definitely took way longer than the 57 minutes that actually got logged.

0
0
5
Open comments for this post

2h 41m 42s logged

Project Update

Adding Multi-Process Support

This update allows Project Kobon to run multiple instances of the solver at the same time, to find more possible solutions and allows the use of more CPU power.

  • Added multiprocessing so that multiple solver processes can run at the same time.
  • Split the work to be done by the solver into separate workers that will run independently of each other.
  • Each solver worker will search for solutions in different ways (due to using different random seeds).
  • The results from each solver worker will be collected and the best solution found will be selected.
  • A way to set the number of solver workers that will be used, depending on the available CPUs on the machine.
  • All results will be reported using the reporter.py script.
0
0
5
Open comments for this post

3h 24m 27s logged

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.
0
0
13
Open comments for this post

1h 8m 3s logged

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.
0
0
12
Open comments for this post

1h 13m 13s logged

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.

0
0
4
Open comments for this post

2h 57m 47s logged

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.
0
0
6
Open comments for this post

5h 17m 32s logged

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.
0
0
27
Open comments for this post

1h 35m 12s logged

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.
0
0
23
Open comments for this post

35m 37s logged

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.
0
0
17
Open comments for this post

58m 6s logged

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.
0
0
17
Open comments for this post

24m 39s logged

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.
0
0
21
Open comments for this post

36m 33s logged

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.
0
0
22

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…