{
  "schemaVersion": 1,
  "generatedAt": "2026-10-03T13:37:49.122Z",
  "count": 2,
  "projects": [
    {
      "$schema": "https://ivansivak.com/schemas/project-manifest.schema.json",
      "schemaVersion": 1,
      "slug": "raytracer",
      "title": "My Old Raytracer Toy",
      "shortTitle": "Raytracer Toy",
      "summary": "A browser resurrection of a Delphi/GLScene CPU ray tracer I wrote around 2003, rebuilt as a Windows 98-style Three.js scene editor with a real recursive JavaScript ray tracer running in a Web Worker.",
      "description": "The live Three.js viewport is an editor; the rendered viewport is rebuilt progressively by a CPU ray tracer rather than captured from WebGL. The repository also preserves the original Object Pascal source, Delphi form, and bundled 3DS models.",
      "category": "Computer Graphics",
      "tags": [
        "Ray tracing",
        "Three.js",
        "Web Workers",
        "Delphi",
        "Retro computing"
      ],
      "year": 2003,
      "publishedAt": "2026-08-05",
      "status": "published",
      "featured": true,
      "order": 10,
      "sourceUrl": "https://github.com/ivansivak86/raytracer_toy",
      "media": {
        "preview": "preview.png"
      },
      "window": {
        "width": 1240,
        "height": 820,
        "minWidth": 760,
        "minHeight": 520,
        "resizable": true
      },
      "capabilities": {
        "fullscreen": true,
        "downloads": true,
        "pointerLock": false,
        "clipboard": false,
        "popups": false
      },
      "runtimeUrl": "https://apps.ivansivak.com/projects/raytracer/",
      "manifestUrl": "https://apps.ivansivak.com/projects/raytracer/_project.json"
    },
    {
      "$schema": "https://ivansivak.com/schemas/project-manifest.schema.json",
      "schemaVersion": 1,
      "slug": "tiger-fluid",
      "title": "Tiger Fluid — Resurrected",
      "shortTitle": "Tiger Fluid",
      "summary": "A browser resurrection of a Delphi, Graphics32, and GLScene fluid experiment I wrote more than two decades ago, rebuilt with a Stable Fluids-style JavaScript solver, interactive Canvas smoke, and a Three.js density height field.",
      "description": "The simulation uses semi-Lagrangian advection, iterative diffusion, pressure projection, ghost-cell boundaries, vorticity confinement, and simple buoyancy to approximate two-dimensional incompressible flow in real time. The Three.js panel deliberately visualizes the same 2D density grid as a height field rather than claiming to be a volumetric 3D fluid solver. The original pixel-smiley Transmit stamp and cleaned Delphi source are preserved alongside corrected and legacy numerical profiles.",
      "category": "Physics & Simulation",
      "tags": [
        "Stable Fluids",
        "Navier–Stokes",
        "Canvas 2D",
        "Three.js",
        "Delphi",
        "Retro computing"
      ],
      "publishedAt": "2026-08-05",
      "status": "published",
      "featured": true,
      "order": 20,
      "sourceUrl": "https://github.com/ivansivak86/fluid_sim_navier_stokes",
      "homepageUrl": "https://ivansivak.com/projects/tiger-fluid",
      "media": {
        "icon": "icon.svg",
        "preview": "preview.png"
      },
      "window": {
        "width": 1240,
        "height": 860,
        "minWidth": 760,
        "minHeight": 560,
        "resizable": true
      },
      "capabilities": {
        "fullscreen": true,
        "downloads": true,
        "pointerLock": false,
        "clipboard": false,
        "popups": true
      },
      "runtimeUrl": "https://apps.ivansivak.com/projects/tiger-fluid/",
      "manifestUrl": "https://apps.ivansivak.com/projects/tiger-fluid/_project.json"
    }
  ]
}