Commit Graph
79 Commits
Author SHA1 Message Date
christoph a3a8c2f31a add fat klotski 2026-02-25 14:13:33 +01:00
christoph 58235ac52e some valgrind bullshit 2026-02-25 13:34:52 +01:00
christoph 82d618f692 update menu + block placing visualization + add move history 2026-02-25 12:45:06 +01:00
christoph 3f8274f1d9 add button to move to a state farthest from any win condition 2026-02-25 03:20:40 +01:00
christoph 271902ab1f implement automatic graph traversal along shortest path to solution 2026-02-25 02:58:30 +01:00
christoph fd58f217c6 implement bfs multi-target distance calculation to nearest winning state 2026-02-25 01:15:47 +01:00
christoph b9e3ab8d2d implement editing the board win condition 2026-02-24 22:43:53 +01:00
christoph d8534cacdd store winning condition in state + remove presets 2026-02-24 22:08:00 +01:00
christoph f31f9557b3 update flags again 2026-02-24 20:53:27 +01:00
christoph 349d614611 add flag to toggle tracy (disabled for now) 2026-02-24 20:42:38 +01:00
christoph d88b66c058 capture stack traces on new/delete 2026-02-24 19:00:36 +01:00
christoph 8a4e5c1ebf squash merge threaded-physics into main 2026-02-24 19:00:25 +01:00
christoph 3e87bbb6a5 remove timings print 2026-02-24 00:12:04 +01:00
christoph 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
christoph 404a76654c update compiler flags, fix tracy allocation profiling, fix compiler warnings 2026-02-23 23:01:30 +01:00
christoph 59a4303d62 mark visited and starting states 2026-02-23 14:41:20 +01:00
christoph 6698ace0c6 implement smooth camera 2026-02-23 14:27:56 +01:00
christoph 861fb34d39 fix octree corruption bug because of node vector reallocation 2026-02-23 13:46:00 +01:00
christoph 30b02c13ed add vertices draw limit after I accidentally removed it 2026-02-23 00:27:51 +01:00
christoph f5bb155b5c fix physics animation jitter 2026-02-23 00:15:25 +01:00
christoph 443069f597 replace openmp with thread-pool library bc openmp has larger fork boundary overhead 2026-02-23 00:14:09 +01:00
christoph 73b01f6af3 add thread-pool library dependency 2026-02-22 23:32:33 +01:00
christoph 21a18443e9 add tracy profiler dependency 2026-02-22 23:32:24 +01:00
christoph e43e505110 implement barnes-hut particle repulsion using octree 2026-02-22 23:29:56 +01:00
christoph f07f2772c4 remove octree library dependency (it doesn't store center of mass per node) 2026-02-22 20:29:01 +01:00
christoph bdb4242076 remove useless manual move/copy constructors/assignment operators (pls stop killing my hands bjarne) 2026-02-22 20:28:42 +01:00
christoph 6a86324f53 add octree library dependency 2026-02-22 19:42:57 +01:00
christoph 768a7eaf82 implement operator<< for ryalib vectors 2026-02-22 19:42:48 +01:00
christoph 9726d5fecc cleanup repulsion force calculation 2026-02-22 19:19:06 +01:00
christoph 2580d6d527 remove unused inputs from instancing vertex shader 2026-02-22 14:33:22 +01:00
christoph 157985df6b extract orbital camera into separate file 2026-02-22 14:30:55 +01:00
christoph 7bc1eaae75 move shaders to separate directory 2026-02-22 14:18:49 +01:00
christoph f06afc210f make naming more consistent + rename some files 2026-02-22 14:17:55 +01:00
christoph fe6bbe9bbb remove batched rendering code 2026-02-22 14:04:11 +01:00
christoph 0083143268 cleanup flake 2026-02-22 13:57:04 +01:00
christoph 9446e1b86c improve rendering performance even more by using instanced rendering 2026-02-22 12:31:58 +01:00
christoph 12a96cba66 decrease special mass size + add hjkl movement bindings 2026-02-22 01:49:54 +01:00
christoph 35de23e865 improve rendering performance by batching edge and cube draws 2026-02-22 01:41:39 +01:00
christoph 05172d0d8f replace physics loop with fixed-step loop 2026-02-22 00:27:56 +01:00
christoph cc4f8ce865 refactor usage of std::string to refer to states + improve initial mass positioning 2026-02-22 00:12:47 +01:00
christoph 0d3913e27e refactor state management and input handling into separate classes 2026-02-21 22:09:42 +01:00
christoph f8fe9e35d6 add more presets (century, super_century, new_century) 2026-02-20 02:15:46 +01:00
christoph 71e1dd4f32 fix state representation not being updated when toggling restricted movement 2026-02-20 02:15:13 +01:00
christoph 7860963fcb only clear the graph on board reset if necessary 2026-02-20 01:41:03 +01:00
christoph 6e5a4acdd0 tint the board if a winning state is reached 2026-02-20 01:36:48 +01:00
christoph d87df74834 add another preset 2026-02-20 01:36:24 +01:00
christoph 199646cae9 allow changing the target block 2026-02-20 01:26:59 +01:00
christoph 11ae406073 add another preset 2026-02-20 01:22:06 +01:00
christoph f8ac60f6a6 implement state editing 2026-02-20 00:58:01 +01:00
christoph ca83d5724f fix BlockIterator always starting at pos 0 (even if there's no Block there) 2026-02-20 00:07:42 +01:00
christoph a48a6caefc make window resizable 2026-02-19 23:10:16 +01:00
christoph 53a38e9cf3 update physics engine parameters 2026-02-19 22:05:46 +01:00
christoph b873a1e9d7 enable parallel build 2026-02-19 22:05:07 +01:00
christoph d7ed12f6f9 move board state presets to separate file 2026-02-19 21:20:13 +01:00
christoph 0f131e2504 fix incorrectly added state transition on board reset 2026-02-19 21:19:17 +01:00
christoph 55ff0f3490 rebuild the repulsion force grid every n frames 2026-02-18 23:12:02 +01:00
christoph 1dad350f7d add winning states to menu panel 2026-02-18 21:43:13 +01:00
christoph d92391271f add winning conditions and ability to mark them in the graph 2026-02-18 20:27:22 +01:00
christoph 47628d06ad add menu pane at the top 2026-02-18 13:30:59 +01:00
christoph 7faa8ecdb7 allow to restrict block movement to principal block directions + add more samples 2026-02-18 03:16:13 +01:00
christoph e2e75204ef parallelize repulsion forces using openmp 2026-02-18 02:08:46 +01:00
christoph 43c9a5b715 implement uniform grid for repulsion forces 2026-02-18 01:21:22 +01:00
christoph 47fcea6bcb implement klotski graph closure solving + improve camera controls (panning) 2026-02-18 00:53:42 +01:00
christoph 039d96eee3 replace manual 3d-2d projection with orbital camera 2026-02-17 22:17:19 +01:00
christoph 8d5a6a827c add basic input handling for klotski board/graph + populate graph based on klotski moves 2026-02-17 15:12:32 +01:00
christoph 9d0afffb57 render klotski board 2026-02-17 13:27:12 +01:00
christoph 017d11245c begin implementing klotski logic 2026-02-17 13:27:05 +01:00
christoph fba493ea93 render vertices in addition to edges 2026-02-17 00:56:01 +01:00
christoph d6ce1a94f5 implement verlet integration - much more stable 2026-02-16 00:37:37 +01:00
christoph d1b115a7c3 implement numerically unstable mass spring system 2026-02-16 00:21:29 +01:00
christoph be7dcf8ae5 implement hash-based deduplication + avx512 transformation 2026-02-15 16:33:41 +01:00
christoph 558b201b6f add large obj file 2026-02-15 16:33:20 +01:00
christoph 801ddafd66 add profiler dependencies 2026-02-15 16:33:08 +01:00
christoph f622014a26 implement objrenderer 2026-02-13 01:33:30 +01:00
christoph 95e4d34cff add obj files 2026-02-13 01:33:23 +01:00
christoph 6692a67f28 update flake (raylib + raylib-cpp + tinyobjloader) 2026-02-12 23:37:45 +01:00
christoph 321b2a8a0a add cmakelists 2026-02-12 23:37:30 +01:00
christoph 70ffc2d833 add gitignore 2026-02-12 23:37:00 +01:00
christoph ca97c0b597 add flake 2026-02-12 20:52:13 +01:00