Skip to content

Instantly share code, notes, and snippets.

@vurtun
vurtun / tree_view_db.c
Last active December 13, 2025 16:27
Virtual Tree Database
/*
* VIRTUAL TREE FLATTENING ENGINE (LMDB-BACKED)
* ============================================
*
* A high-performance virtualization layer that transforms a hierarchical tree
* stored in LMDB into a linear, flat list of visible rows suitable for UI rendering.
*
* DESIGN PHILOSOPHY:
* This system is architected for "Infinite Scrolling" over massive datasets
* (10M+ nodes) where latency must remain under 1ms (1000 FPS). It prioritizes
@vurtun
vurtun / node_graph_db.c
Last active December 13, 2025 08:42
Node Graph Database
/* ======================================================================================
* VISGRIDHigh-Performance Spatial Indexing Engine
* ======================================================================================
*
* DESCRIPTION:
* Visgrid is a specialized, embedded-grade spatial database designed for highly
* interactive node graphs, infinite canvas UI, and real-time 2D simulations.
* It implements a "Linearized Implicit Quadtree" using Z-Order curves (Morton Codes)
* backed by a memory-mapped B-Tree (LMDB).
*
@vurtun
vurtun / mt.c
Last active October 23, 2025 09:59
Multi-Core By Default
// https://www.rfleury.com/p/multi-core-by-default
// https://github.com/EpicGamesExt/raddebugger/blob/c738768e41153b8e598ef51aa57530cf71c19880/src/base/base_entry_point.c#L179
// https://github.com/EpicGamesExt/raddebugger/blob/master/src/radbin/radbin.c#L37
#include <pthread.h>
#ifdef __linux__
#define _GNU_SOURCE // For pthread_setaffinity_np and sched.h extensions
#include <sched.h> // For sched_param, SCHED_FIFO, sched_yield
#include <sys/sysinfo.h> // For fallback cpu_cnt
#endif
#include <immintrin.h> // For AVX2 intrinsics
#include <stdio.h>
#include <float.h> // For FLT_MAX and FLT_MIN
#include <string.h> // For memset
#include <stdlib.h> // For exit
#include <math.h> // For fmaxf, fminf
#include <pthread.h> // For pthreads (example, assuming your pool uses similar mechanisms)
#include <assert.h>
#define EPSILON 1e-6f // Define a small epsilon to handle floating point inaccuracies
// https://danglingpointers.com/post/spinlock-implementation/
void Lock(AtomicI32& _spinLock)
{
for (;;)
{
if (_spinLock.load_Acquire() == 0)
{
i32 expected = 0;
i32 store = 1;
if (_spinLock.compareExchange_Acquire(expected, store))
@vurtun
vurtun / astar.c
Last active December 14, 2025 11:45
A* Pathfinder optimized for 64x64 grids on ARM64 mobile SoCs
/*
* A* Pathfinder optimized for 64x64 grids on ARM64 mobile SoCs.
*
* Features:
* - Deterministic memory (Strict Indexed Priority Queue, no heap bloat).
* - Cache-coherent SoA layout (Structure of Arrays) fitting ~50KB L1 Cache.
* - Register-level map caching (loading rows into uint64_t registers).
* - Fully NEON-accelerated initialization.
* - Branchless heuristics and collision checking.
* - Zero allocations (Context is reusable).
@vurtun
vurtun / chain.c
Last active December 10, 2025 21:07
chain simulation
/* -----------------------------------------------------------------------------
* DECORATIVE CHAIN SIMULATOR
* -----------------------------------------------------------------------------
*
* An AVX2-optimized XPBD simulation library designed for high-fidelity
* decorative physics in AAA games (jewelry, braids, armor chains, lanterns).
*
* ARCHITECTURAL HIGHLIGHTS:
* - Hybrid "Blocked" Pipeline: Processes chains in blocks of 8 to maximize SIMD
* throughput for global forces (Wind, Gravity, Inertia), then switches to
@vurtun
vurtun / pdf.c
Last active October 11, 2025 18:27
Probability Density Function (PDF) Tree data structure
The PdfTree is a hierarchical data structure that stores values and their associated probabilities, organized in a way that resembles a binary tree or mip-map pyramid. It allows for efficient random selection of values proportional to their probabilities (e.g., for Monte Carlo sampling in rendering or procedural generation). The tree is built as a "summed probability tree," where each level aggregates probabilities from the level below it, enabling fast traversal for sampling.
The tree is laid out linearly in probabilities, with each level concatenated. For example:
Mip 0: Original probabilities [p0, p1, p2, p3]
Mip 1: Pairwise sums [p0+p1, p2+p3]
Mip 2: Sum of mip 1 [p0+p1+p2+p3]
Mip Level Calculation:
Computes the total number of elements across all mip levels.
@vurtun
vurtun / anim_sample.c
Last active November 5, 2025 22:47
animation sampling
#include <immintrin.h> // AVX, includes SSE2-SSE4.2
#include <assert.h>
#include <math.h>
#include <stdint.h>
#include <pthread.h>
#include <stdlib.h>
#include <stdio.h>
#define MAX_ANIM 1024
#define MAX_ANM_CLIPS 256
@vurtun
vurtun / bit_set.c
Last active February 5, 2025 09:50
#include <immintrin.h> // For AVX2
#define MAX_SIZE (64*1024)
#define BITS_PER_WORD 64
#define WORD_CNT ((MAX_SIZE + BITS_PER_WORD - 1) / BITS_PER_WORD) // 1024 words
#define BIT_MAP_CNT ((WORD_CNT + BITS_PER_WORD - 1) / BITS_PER_WORD) // 16 words
#define WORD_SHIFT 6 // log2(BITS_PER_WORD)
#define WORD_MSK (BITS_PER_WORD - 1) // 63
#define CHUNK_CNT (BIT_MAP_CNT/4)
#define CACHE_LINE_SIZE 64