Cut a level into a grid of cells, stack scene layers on each cell, and stream them around the player. Author-first editor, data-driven runtime, no timers.Quadrat ships no shader, no material and no rendering code, so the streaming runs on any pipeline. The Combine tool reads the textures of any shader (Built-in Standard, URP Lit, HDRP Lit, Shader Graph included) and composes its atlases on the CPU, so it does not depend on the pipeline either.Quadrat turns heavy, monolithic levels into a grid of streamed scenes—and automatically combines their meshes by sector to crush draw calls without breaking your culling.1. Seamless Grid StreamingDraw a grid over your 3D ground plane or 2D XY world and stack your layers. Keep your base layer (ground and collisions) persistent, and let Quadrat stream your décor layers by distance.Each cell is just an ordinary Unity scene. Drop your existing scenes into the Quadrat window to adopt them non-destructively, or let the Bake tool generate the missing ones.At runtime, a single component handles the logic. It loads the player’s cell plus a precaution ring, reporting real progress values rather than timers. Sectors load and unload as the player moves, using per-layer hysteresis to eliminate edge-flickering. Every variable is exposed on the map data: round or square reach, unload vs. disable modes, load limits, linger delays, and layer hierarchies. Your game can toggle entire layers on the fly or scale all streaming limits simultaneously for a global "draw distance" setting.2. Chunk-Based Combine & AtlasingStreaming saves memory; Combine saves the CPU. Quadrat merges static meshes by chunk (matching your grid cells), by LOD, and by material. Materials sharing a shader are packed into texture atlases with baked tints and recalculated UVs.Because meshes are combined per cell rather than globally, Frustum and Occlusion Culling stay fully active. A chunk can still be hidden behind a wall, whereas a globally merged scene cannot.The process is strictly non-destructive. Original renderers are disabled and remembered—one click restores them for editing. If an object cannot be merged (e.g., mirrored scales, animations, tiled textures), Quadrat skips it and tells you the exact reason why.Combine Demo Benchmark: An included town scene reduces 851 renderers down to 64 objects and a single texture atlas, preserving every triangle perfectly.3. Bulletproof Editor WorkflowBuilt for fast iteration, the Quadrat editor window includes:Loading Preview: Place a simulated player anywhere in a cell to see exactly what will load, keep, or release. This preview is mirrored in the Scene view and tracks the player live in Play mode.Scene View Gizmos: Visualize the grid, stack layers, toggle visibility per strata, and preview content without opening the scenes.Validation Gate: A strict map judgement system catches inconsistencies before you bake or press Play, explaining exactly what is wrong in a single, actionable sentence.Combine View: A four-step wizard with its own gizmos and real-number reporting.Technical Details & FitIdeal for: Open worlds, hand-built RPG/survival maps, MMO clients, and massive 2D levels where a single scene is too heavy to edit or draw. Not for: Procedural generation. Your scenes remain standard Unity scenes.Architecture: Full C# source included across three small assemblies. The map is a plain ScriptableObject exportable to JSON.Zero Dependencies: No hidden requirements. An optional Addressables adapter is included but only compiles if Addressables is installed.Extensible: Bring your own loader (downloader, server catalogue) via the provided port.Automated Tests: Ships with EditMode tests, including combine validations that check the math down to the unit.Included Samples:Streaming Demo: A baked 10×7 map with 210 small scenes across three layers, ready to walk through.Combine Demo: A testbed ready to merge, analyze, and restore.Editor WorkflowUnified Workspace: One window housing Maps, Grid, Settings, and Combine views for full control over layers, cell inspection, and grid definition.Non-Destructive Bake: Creates planned scenes, adopts existing files without overwriting, adds them to Build Settings, and exports map data as versioned JSON.Live Previews & Gizmos: Place a simulated player to preview loaded/released sectors (including hysteresis). Scene view gizmos display stacked layers, content previews, grid boundaries, and combine chunk boxes.Strict Map Judgement: Validates data before baking or runtime. Errors are blocked and explained in a single actionable sentence; warnings are flagged cleanly.Robust Tracking: Full Undo support and GUID-derived scene keys. Moving or renaming a scene never breaks your map.Combine & AtlasingChunk-Based Merging: Combines static meshes by map cell, custom square, or whole scene. Groups by LOD and material, outputting one object/draw per group. Rebuilds LOD groups using source transition heights and carries over shadows, probes, and static flags.Smart Texture Atlasing: Packs materials sharing a shader (Built-in, URP, HDRP) into power-of-two atlases. Bakes tints into the color map, recalculates UVs, and applies bleed padding.Non-Destructive Controller: Sources are disabled and remembered, never destroyed. Swap between original and combined meshes instantly, or restore an entire map in one run. Permanent deletion is an explicit, confirmed action.Explicit Refusals: Identifies exactly why a mesh was skipped (e.g., mirrored scales, animations, PropertyBlocks, tiled textures, non-asset materials).Asset Routing: Save generated meshes and atlases to a dedicated folder or directly inside the scene file.Runtime StreamingQuadratStreamer: Distance-based streaming with round or square reach. Handles the initial load (player cell + precaution ring) with real progress values, never timers. Features per-layer hysteresis and per-layer unload/disable modes.Layer Floors: Define structural dependencies. Décor layers will only load and unload alongside the base floor they stand on.Dynamic Controls: Toggle entire layers for a session, scale all distances simultaneously (Draw Distance option), cap concurrent loads, and set unload delays for players turning back.Performance First: Zero per-tick allocations. Sector records are built once. Failures are reported, gracefully retried, and never block the Ready event.Pluggable Architecture: Ships with a SceneManager loader and an optional Addressables adapter. Exposes a clean port to inject your own custom loader (e.g., server catalogue).Debug Overlay: On-screen HUD showing the grid, queue status, progress, and fog visibility distance.Compatibility & RequirementsEngine: Unity 6 (6000.0) and later. Supports 3D ground planes (X/Z) and 2D planes (X/Y).Render Pipelines: Agnostic. The streaming contains no rendering code, and the atlas blit uses a hidden Editor-only shader.Zero Dependencies: Standalone package. The Addressables adapter compiles only if the package is present in your project.Source & Tests: Full C# source included across three assemblies (Runtime, Editor, Tests). Ships with 96 EditMode tests locking down the combine math and logic.Included Samples: A Streaming Demo (10×7 map, 210 small scenes) and a Combine Demo. Contains no third-party assets.Note: Quadrat is a streaming and mesh combine tool. It is not a terrain generator, physics system, or rendering pipeline. Skinned meshes are listed and ignored during Combine.AI was used throughout the creation of this package, as an assistant working under mydirection. Specifically:Documentation and store copy — The README, the changelog and the text of this listingwere drafted with AI assistance and reviewed by me.Artwork — The logo, the in-editor banner and the key images on this page were producedwith AI assistance as hand-authored vector shapes (SVG) and HTML/CSS layouts, rendereddeterministically to PNG. No generative image, audio or 3D model was used at any point,and no AI-generated imagery is included in the package or in the store media.No AI-generated content is executed or embedded at runtime. The package is editor-onlyand ships no runtime assembly or asset.




