Michael Abid · year in review
2026
Wrapped
January → October. Everything I built, played as a film.
Space pause · ←→ skip · D details
Michael Abid · year in review
Wrapped
January → October. Everything I built, played as a film.
Space pause · ←→ skip · D details
The year in numbers
Node.js / MongoDB Backend
Update validateCompletionPayload in matchArchiveHelpers.js
validateCompletionPayload in matchArchiveHelpers.jsCompetitive Landing Page
Blue vs. Orange split-screen hero with clip-path
Node.js / MongoDB Backend
Categories: Player Base, Match Activity, Engagement, Competitive, Speedrun, Server Health, Live Status
Support for animation states array alongside time, position, rotation
Endpoint /api/player/ returns player data + full match history in a single call
Endpoints: GET /api/admin/map-times · DELETE by steamId · DELETE all
/api/player/ returns player data + full match history in a single callWPF .NET 8 Desktop Launcher
7 decoupled services: LogService, StateService, ManifestService, DownloadService, HashService, ExtractService, LaunchService
Model changes from { Version, InstallPath } to { Versions: Dictionary<string, InstalledVersion> }
{ Version, InstallPath } to { Versions: Dictionary<string, InstalledVersion> }Games/SuperTag/v0.1.0/ · v0.0.2/Generic Admin CMS
Entities: faction, planet, mission, loadout, political_party, technology…
Live admin simulator via WebSocket (no HTTP polling)
Admin page to simulate a full DTA match without a game client
Node.js / MongoDB Backend
Extension of the best times system with checkpoints
Full implementation of DTA mode (Competitive BO3)
Added dta queue to matchmaking
draftOrder changes from string to array<steamId>
POST /api/match/leave now supports leaving the DTA queue
{ map, time, checkpoints: [12.345, 28.112, 35.890] }draftOrder changes from string to array<steamId>POST /api/match/leave now supports leaving the DTA queueNode.js / MongoDB Backend
Timeout increased 3s → 30s + keepalive acknowledgeStatus
Replaced HTTP polling with full-duplex WebSockets
Real-time ghost streaming: relay opponent ghost between runs
expired status if players do not ready up in timeGameplay / UX / Systems
Draft Time Attack: 1v1 competitive duel with draft setups, real-time ghost, penalized resets, BO3 maps
UI menus · Bronze/Silver/Gold badges · World Record / Personal Best
Gemini → images, concept art, menu mockups, badge generation
cost.md document: endpoint frequency analysis, server load, realistic scenarios
Star Wars RP Web Terminal (Aether2)
Immersive datapad chassis: physical shell, indicator lights, boot sequence, scanlines
Extracted all inline SQL from views into /repositories (Phases 4 → 5): entities, documents, organisations
repo_sys_getKPIData() collects 60+ metrics across users, characters, documents, logistics
Independent webhooks.db · live in-game administration without touching the core DB
FLOTTE module (fleet.php) with naval access gating and a dedicated fleet.db
republic-terminal.css built on CSS custom properties (--cyan, --orange, --font-mono)/repositories (Phases 4 → 5): entities, documents, organisationsgetDB() in controllers — repo_* helpers + transaction helpersmigrations.php) + database/migrations with an internal migrations tablerepo_sys_getKPIData() collects 60+ metrics across users, characters, documents, logisticswebhooks.db · live in-game administration without touching the core DBunit_ids) — global or unit-scoped notificationsfleet.php) with naval access gating and a dedicated fleet.dbStar Wars RP Web Terminal (Aether2)
Standalone tactical_simulator.db, reuses existing auth / sessions
Tables reco_reports / icons / patrols / viewpoints / logs
storage_packages.php: officer-defined equipment packages (e.g. "Déploiement Lourd")
Markdown in reports (inline, tables) + autoformat button (formatter.php)
api/gmod_server_boot.php server-to-server boot handshake
tactical_simulator.db, reuses existing auth / sessionsreco_reports / icons / patrols / viewpoints / logsstorage_packages.php: officer-defined equipment packages (e.g. "Déploiement Lourd")formatter.php)BASE_URL)api/gmod_server_boot.php server-to-server boot handshakesteamid + account_token on users, default trust token in settingsVolumetric Tactical Radar
DA v1.2 / AUREK military-terminal visual rework · Orbitron variable font
DHTML admin menu · universal NetVar editor (Vector → #RRGGBB)
Unknown-signal mode: white triangles wobble, precision increases with sensor proximity
#RRGGBB)item_radar_reco · squad system + tactical mapperfect-hands radio communicationsAmbient NPC Life & Dialogue
Replaced the hardcoded NextBot loop with a Task System (sh_tasks)
NPCLife.RegisterDialogue trees · npc:SetDialogue · fullscreen letterboxed cinematic overlay
Ambient-life ecosystem rework · tabbed admin (spawn points, models, bodygroups, weapons, tags)
Bone Modifier Presets (static poses) · Model Scale · per-profile spawn points
sh_tasks)NPCLife.RegisterDialogue trees · npc:SetDialogue · fullscreen letterboxed cinematic overlaynpclife_ toolsIn-World Economy Systems
Supply-crate inventory UI (drag & drop, lock) rebuilt on cl_supply_crate
aether_crafting_system: resource entities (Tibanna, Bacta…), production machine, recipes
cl_supply_crateaether_transit_system (container entity, JSON persistence) · aether_crate_spawner custom loadoutsaether_crafting_system: resource entities (Tibanna, Bacta…), production machine, recipesent_factory_base)Artillery, Shaders & Cockpits
In-world holographic strategy / radar table players gather around
cl_hologram.lua) with a robust non-GShader fallbackTurn-Based Space Battle (Web + GMod)
PostgreSQL / Prisma · XState armadaMachine FSM · event sourcing (AttackDeclared / DiceRolled / DamageResolved)
Star Wars Armada-inspired fleet combat on a holographic table entity
armadaMachine FSM · event sourcing (AttackDeclared / DiceRolled / DamageResolved)Prototypes & Configurators
First web iteration following the game design + art direction docs
Economy module viability test (aether_erp) · Republic RP art direction v1.2
JSON save API (api_save.php) + dialogue simulator to test trees
aether_erp) · Republic RP art direction v1.2api_save.php) + dialogue simulator to test treesDesktop Tools & Asset Pipeline
Desktop app to manage Garry's Mod addons during development
Star Wars RP Web Terminal (Aether2)
Steam OpenID 2.0 (core/steam_auth.php, steam_callback.php) · login via Steam
MAPPING AUREK page: dynamic key-value tables for GMod ↔ Web sync mappings
Semi-transparent cyan cards, Font Awesome icons, cleaner terminal look
core/steam_auth.php, steam_callback.php) · login via Steamgmod_uuid (TEXT UNIQUE) to charactersrepo_aurek_importCharactersForUser() matches by gmod_uuid → matricule → name (no user creation)Ambient NPC Life & Dialogue
Phase 1: centralised NPCLife.SyncProfiles helper · simulated weapons (prop_dynamic, no SWEP instancing)
NPCLife.SyncProfiles helper · simulated weapons (prop_dynamic, no SWEP instancing)aether_npclife_base and refactored npc_life_custom combatLightsaber Combat AI
Config / preset UI (Context menu) · SkillLevel difficulty scaling
~70 Force powers classified by archetype (lscs_force_powers + aether_utils)
High-performance NPC base kernel (sv_scheduler) with main / develop / feat git flow
jb_dualwield, left-hand attachment)lscs_force_powers + aether_utils)sv_scheduler) with main / develop / feat git flowaether_force_vision: sensory Jedi perception without a classic wallhackArtillery, Shaders & Cockpits
Manual azimuth / elevation (no auto-copy) · spotter gives azimuth + distance only · firing tables
Shadertoy NfdGzS port to a GShader post-process (nml_fog_ps30.hlsl / .vcs)
Fully diegetic cockpit · freelook head-tracking camera · multiple virtual screens
nml_fog_ps30.hlsl / .vcs)Prototypes & Configurators
Drawflow node graph to visually map resources → recipes → production chains
Desktop Tools & Asset Pipeline
Automated pipeline converting FBX models to Source .mdl
.mdlStar Wars RP Web Terminal (Aether2)
7 accreditation levels evaluated against the active character, not the account
Territory influence, fleet movement and pathfinding across the galaxy
Fleets and squadrons with inter-unit transfers (fleet.php)
Custom editor with @type:Name mentions resolving to entity links
Phase 6bis: galaxy_campaigns / operations / missions with a draft → active → resolved lifecycle
fleet.php)repo_char_*, repo_doc_*) — no direct PDO in views, CSRF on every POST@type:Name mentions resolving to entity linksgalaxy_campaigns / operations / missions with a draft → active → resolved lifecyclegalaxy_map.php (rights-gated, admin / animator)export_galaxy_data.php / import_galaxy_data.php) Dev → ProdStar Wars RP Web Terminal (Aether2)
Supplier orders now ship as real delivery fleets on the map (DÉPÔT FOURNISSEURS setting)
api/aurek.php actions gmod_stock_list / gmod_stock_withdraw across Perso / Unité / Flotte stocks
Quick Action for officers (security-matrix gated, no hardcoded override)
In-game render of AUREK-NET on sent_republic_terminal entities via Chromium DHTML (3D2D)
api/aurek.php actions gmod_stock_list / gmod_stock_withdraw across Perso / Unité / Flotte stocksrepo_aurek_takeStockItem generates secure Checkout Slips · matricule prefix cleanupsent_republic_terminal entities via Chromium DHTML (3D2D)PHP Personal Site
Accessibility, performance and a unified visual system pass across the site
Act II
September → October: three AI products built and shipped.
Multiplayer RPG run by an AI game master · persistent world engine
Project page →Multiplayer RPG prototype, then the hosted version with secure account sessions
Synchronised scene turns, private parallel scenes orchestrated by the AI
Lore universes with mass ingestion and streamed Codex writing
Contextual lore and NPC portraits injected into the narration
Liquid-glass game view and a reworked mobile game view
Chroniques IA · by the numbers
Usage figures as of 30 Sept 2026.
A living social network of AI characters
Project page →Streaming chat with DeepSeek, snapshot memory instead of resending the whole history
Instagram-style profiles, posts, comments, likes and follows
Twitter-style text feed with about 80 generated posts a day
Audit of the hosted build against the local one, security gaps closed
IntimateAI · the network lives on its own
Motion design for AI agents · MCP server
Project page →Render engine choice (Remotion), preset-based JSON DSL, versioned libraries, MCP tools
Compiler, Remotion player, registry, REST API and an MCP server with 22 tools
A 104-second showreel built only through MCP calls, fixing three engine bugs on the way
Published on GitHub under MIT, CI on Linux, macOS and Windows
MotionForge · an agent writes ~120 tokens of JSON…
Stop rebuilding
90%
…and MotionForge expands, validates and renders it with Remotion.
A living social network of AI characters
Project page →Mentions where reply odds depend on audience size and relationships
Real-world facts API (REST + MCP server) the characters react to
PHP Personal Site
New PHP site with GSAP, ScrollTrigger and Lenis: particle hero, filterable project grid, page transitions
Top features of the year
18 projects · 87 logged entries
Every entry from the year, month by month. Press play above for the motion version.
Node.js / MongoDB Backend · In production
validateCompletionPayload in matchArchiveHelpers.jsCompetitive Landing Page · In production
Node.js / MongoDB Backend · In production
/api/player/ returns player data + full match history in a single callWPF .NET 8 Desktop Launcher · Delivered
{ Version, InstallPath } to { Versions: Dictionary<string, InstalledVersion> }Games/SuperTag/v0.1.0/ · v0.0.2/Generic Admin CMS · Delivered
Node.js / MongoDB Backend · In production
{ map, time, checkpoints: [12.345, 28.112, 35.890] }draftOrder changes from string to array<steamId>POST /api/match/leave now supports leaving the DTA queueexpired status if players do not ready up in timeGameplay / UX / Systems · In development
Star Wars RP Web Terminal (Aether2) · In production
republic-terminal.css built on CSS custom properties (--cyan, --orange, --font-mono)/repositories (Phases 4 → 5): entities, documents, organisationsgetDB() in controllers — repo_* helpers + transaction helpersmigrations.php) + database/migrations with an internal migrations tablerepo_sys_getKPIData() collects 60+ metrics across users, characters, documents, logisticswebhooks.db · live in-game administration without touching the core DBunit_ids) — global or unit-scoped notificationsfleet.php) with naval access gating and a dedicated fleet.dbtactical_simulator.db, reuses existing auth / sessionsreco_reports / icons / patrols / viewpoints / logsstorage_packages.php: officer-defined equipment packages (e.g. "Déploiement Lourd")formatter.php)BASE_URL)api/gmod_server_boot.php server-to-server boot handshakesteamid + account_token on users, default trust token in settingsVolumetric Tactical Radar · In development
#RRGGBB)item_radar_reco · squad system + tactical mapperfect-hands radio communicationsAmbient NPC Life & Dialogue · In development
sh_tasks)NPCLife.RegisterDialogue trees · npc:SetDialogue · fullscreen letterboxed cinematic overlaynpclife_ toolsIn-World Economy Systems · In development
cl_supply_crateaether_transit_system (container entity, JSON persistence) · aether_crate_spawner custom loadoutsaether_crafting_system: resource entities (Tibanna, Bacta…), production machine, recipesent_factory_base)Artillery, Shaders & Cockpits · In development
cl_hologram.lua) with a robust non-GShader fallbackTurn-Based Space Battle (Web + GMod) · In development
armadaMachine FSM · event sourcing (AttackDeclared / DiceRolled / DamageResolved)Prototypes & Configurators · Prototype
aether_erp) · Republic RP art direction v1.2api_save.php) + dialogue simulator to test treesDesktop Tools & Asset Pipeline · Delivered
Star Wars RP Web Terminal (Aether2) · In production
core/steam_auth.php, steam_callback.php) · login via Steamgmod_uuid (TEXT UNIQUE) to charactersrepo_aurek_importCharactersForUser() matches by gmod_uuid → matricule → name (no user creation)Ambient NPC Life & Dialogue · In development
NPCLife.SyncProfiles helper · simulated weapons (prop_dynamic, no SWEP instancing)aether_npclife_base and refactored npc_life_custom combatLightsaber Combat AI · In development
jb_dualwield, left-hand attachment)lscs_force_powers + aether_utils)sv_scheduler) with main / develop / feat git flowaether_force_vision: sensory Jedi perception without a classic wallhackArtillery, Shaders & Cockpits · In development
nml_fog_ps30.hlsl / .vcs)Prototypes & Configurators · Prototype
Desktop Tools & Asset Pipeline · Delivered
.mdlStar Wars RP Web Terminal (Aether2) · In production
fleet.php)repo_char_*, repo_doc_*) — no direct PDO in views, CSRF on every POST@type:Name mentions resolving to entity linksgalaxy_campaigns / operations / missions with a draft → active → resolved lifecyclegalaxy_map.php (rights-gated, admin / animator)export_galaxy_data.php / import_galaxy_data.php) Dev → Prodapi/aurek.php actions gmod_stock_list / gmod_stock_withdraw across Perso / Unité / Flotte stocksrepo_aurek_takeStockItem generates secure Checkout Slips · matricule prefix cleanupsent_republic_terminal entities via Chromium DHTML (3D2D)PHP Personal Site · In production
Multiplayer RPG run by an AI game master · persistent world engine · Live
A living social network of AI characters · Live
Motion design for AI agents · MCP server · Open source
A living social network of AI characters · Live
PHP Personal Site · In production