5e8a110f45
wip: don't lock command mutex for each mass/spring in FillGraph()
2026-02-24 02:51:34 +01:00
550970f8a1
wip: integrating threaded decoupled physics
...
Current Issues:
- HUGE memory leak
- HUGE amount of needles copying
- FillGraph() does thousands of lock_guards instead of one
- Can no longer rely on new states appearing immediately - have to check
each access
- Physics run as fast as possible, no constant sim speed`
- Irregular long freezes
2026-02-24 02:05:09 +01:00
39c0b58f3f
implement threaded physics (decoupled from rendering thread) - not yet integrated
2026-02-24 01:02:53 +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
ca83d5724f
fix BlockIterator always starting at pos 0 (even if there's no Block there)
2026-02-20 00:07:42 +01:00
a48a6caefc
make window resizable
2026-02-19 23:10:16 +01:00
53a38e9cf3
update physics engine parameters
2026-02-19 22:05:46 +01:00
d7ed12f6f9
move board state presets to separate file
2026-02-19 21:20:13 +01:00
55ff0f3490
rebuild the repulsion force grid every n frames
2026-02-18 23:12:02 +01:00
1dad350f7d
add winning states to menu panel
2026-02-18 21:43:13 +01:00
d92391271f
add winning conditions and ability to mark them in the graph
2026-02-18 20:27:22 +01:00
47628d06ad
add menu pane at the top
2026-02-18 13:30:59 +01:00
7faa8ecdb7
allow to restrict block movement to principal block directions + add more samples
2026-02-18 03:16:13 +01:00
e2e75204ef
parallelize repulsion forces using openmp
2026-02-18 02:08:46 +01:00
43c9a5b715
implement uniform grid for repulsion forces
2026-02-18 01:21:22 +01:00
47fcea6bcb
implement klotski graph closure solving + improve camera controls (panning)
2026-02-18 00:53:42 +01:00
039d96eee3
replace manual 3d-2d projection with orbital camera
2026-02-17 22:17:19 +01:00
8d5a6a827c
add basic input handling for klotski board/graph + populate graph based on klotski moves
2026-02-17 15:12:32 +01:00
9d0afffb57
render klotski board
2026-02-17 13:27:12 +01:00
017d11245c
begin implementing klotski logic
2026-02-17 13:27:05 +01:00
fba493ea93
render vertices in addition to edges
2026-02-17 00:56:01 +01:00
d6ce1a94f5
implement verlet integration - much more stable
2026-02-16 00:37:37 +01:00
d1b115a7c3
implement numerically unstable mass spring system
2026-02-16 00:21:29 +01:00