592c4b6cc0
massive state space solver improvement: supercomp took ~10s, now ~40ms
...
achieved by imposing a 15 block limit on each board and changing the
internal representation from std::string to 4x uint64_t
2026-03-02 05:26:18 +01:00
846ff72d1f
fix bug where starting index was set incorrectly when populating graph
2026-02-28 23:16:00 +01:00
9ab96c5903
rename files based on their classes
2026-02-28 22:30:00 +01:00
809fbf1b93
add popups to certain user actions
2026-02-28 21:49:41 +01:00
ce05dd504a
small refactor
2026-02-28 18:37:47 +01:00
3f71603961
improve gui elements styling when disabled
2026-02-27 14:27:33 +01:00
b01cfdecfe
implement option to lock camera to graph's center of mass
2026-02-27 14:06:30 +01:00
db694838a7
fix compiler warnings
2026-02-27 13:17:18 +01:00
85ed3a758a
make windows-compliant
...
- fix BS_thread_pool include error (pulls in windows.h, symbols were
redefined)
- remove all std::println uses :(, seems like mingw doesn't like those
- allow to disable backward from cmake
2026-02-27 12:31:08 +01:00
f512306109
prevent zooming when in orthographic perspective
2026-02-27 03:35:54 +01:00
2517a9d33b
complete rework of the user interface (using raygui)
2026-02-27 03:01:43 +01:00
4a37e93b98
implement immovable blocks (walls) and add two presets
2026-02-25 17:21:54 +01:00
5e3d007a9d
display puzzle title
2026-02-25 16:53:13 +01:00
82d618f692
update menu + block placing visualization + add move history
2026-02-25 12:45:06 +01:00
3f8274f1d9
add button to move to a state farthest from any win condition
2026-02-25 03:20:40 +01:00
271902ab1f
implement automatic graph traversal along shortest path to solution
2026-02-25 02:58:30 +01:00
fd58f217c6
implement bfs multi-target distance calculation to nearest winning state
2026-02-25 01:15:47 +01:00
b9e3ab8d2d
implement editing the board win condition
2026-02-24 22:43:53 +01:00
d8534cacdd
store winning condition in state + remove presets
2026-02-24 22:08:00 +01:00
f31f9557b3
update flags again
2026-02-24 20:53:27 +01:00
349d614611
add flag to toggle tracy (disabled for now)
2026-02-24 20:42:38 +01:00
8a4e5c1ebf
squash merge threaded-physics into main
2026-02-24 19:00:25 +01:00
3e87bbb6a5
remove timings print
2026-02-24 00:12:04 +01:00
bfe8c6d572
store masses/springs inside vector and manage unordered_maps for a state<->index mapping
...
this reduces the time required to iterate over all masses/springs
because data is stored in contiguous memory
2026-02-24 00:01:04 +01:00
404a76654c
update compiler flags, fix tracy allocation profiling, fix compiler warnings
2026-02-23 23:01:30 +01:00
59a4303d62
mark visited and starting states
2026-02-23 14:41:20 +01:00
6698ace0c6
implement smooth camera
2026-02-23 14:27:56 +01:00
861fb34d39
fix octree corruption bug because of node vector reallocation
2026-02-23 13:46:00 +01:00
30b02c13ed
add vertices draw limit after I accidentally removed it
2026-02-23 00:27:51 +01:00
443069f597
replace openmp with thread-pool library bc openmp has larger fork boundary overhead
2026-02-23 00:14:09 +01:00
e43e505110
implement barnes-hut particle repulsion using octree
2026-02-22 23:29:56 +01:00
bdb4242076
remove useless manual move/copy constructors/assignment operators (pls stop killing my hands bjarne)
2026-02-22 20:28:42 +01:00
768a7eaf82
implement operator<< for ryalib vectors
2026-02-22 19:42:48 +01:00
9726d5fecc
cleanup repulsion force calculation
2026-02-22 19:19:06 +01:00
157985df6b
extract orbital camera into separate file
2026-02-22 14:30:55 +01:00
f06afc210f
make naming more consistent + rename some files
2026-02-22 14:17:55 +01:00
fe6bbe9bbb
remove batched rendering code
2026-02-22 14:04:11 +01:00
9446e1b86c
improve rendering performance even more by using instanced rendering
2026-02-22 12:31:58 +01:00
12a96cba66
decrease special mass size + add hjkl movement bindings
2026-02-22 01:49:54 +01:00
35de23e865
improve rendering performance by batching edge and cube draws
2026-02-22 01:41:39 +01:00
05172d0d8f
replace physics loop with fixed-step loop
2026-02-22 00:27:56 +01:00
cc4f8ce865
refactor usage of std::string to refer to states + improve initial mass positioning
2026-02-22 00:12:47 +01:00
0d3913e27e
refactor state management and input handling into separate classes
2026-02-21 22:09:42 +01:00
f8fe9e35d6
add more presets (century, super_century, new_century)
2026-02-20 02:15:46 +01:00
71e1dd4f32
fix state representation not being updated when toggling restricted movement
2026-02-20 02:15:13 +01:00
6e5a4acdd0
tint the board if a winning state is reached
2026-02-20 01:36:48 +01:00
d87df74834
add another preset
2026-02-20 01:36:24 +01:00
199646cae9
allow changing the target block
2026-02-20 01:26:59 +01:00
11ae406073
add another preset
2026-02-20 01:22:06 +01:00
f8ac60f6a6
implement state editing
2026-02-20 00:58:01 +01:00