
Real-time dynamic water simulation system with physical flow, interaction, and multi-pipeline supportKWS2 is an advanced water system for Unity, built around a physically-based real-time simulation.Unlike many static or purely visual solutions, KWS2 simulates actual wave-based flow, interactions with dynamic objects, and terrain-driven behavior.Fully customizable through zones and optimized as far as technically possible for large-scale water environments, with support for natural scenarios like calm-to-moderate oceans, small waterfalls, and realistic river flows.Ideal for projects requiring believable, performance-friendly water, from open seas to mountain streams, without targeting exaggerated extremes :) Compared to the first version KWS Water System, some outdated features have been removed, while others have been significantly improved and reworked from the ground up.KWS2 is a completely separate asset and does not require KWS1 to work.An upgrade discount (~40%) is available for existing KWS1 users.Supported pipelines: Built-in, URP, HDRP, including Unity 6Mobile platforms are not supported due to compute shader limitations and known rendering issues.Other platforms (VR, Metal, PlayStation, Xbox, etc.) may work, but are not officially supported or guaranteed.You can check the online README. It's still being updated and will be expanded over timeMain Features:Real-time dynamic water simulation using flow water equations and FFT ocean renderingSpline-free river and waterfall creation - auto-follows terrain, no manual pathingEasy zone-based workflow: add flowing water in secondsInteraction with dynamic objects, shore response, and obstacle avoidanceBuoyancy system + height/flow sampling API for floating objectsOptional cached simulation (preflow) with dynamic reroutingRendering & Lighting:Physically-based lighting with absorption, SSS, caustics, sunshafts, and PBR shadingVolumetric lighting above/below surface + underwater sunshaftsReflections stack: fast SSR, planar, skybox and anisotropic reflectionRefraction with dispersion and water IORInternal underwater reflections (Snell’s window) with full immersion supportAnisotropic highlights and Fresnel-based shimmerVisual Effects & Environment:Dynamic foam, splash particles, wetness, and dropletsCustom zones for color, wind, water level, or full transparency (glass/submarine view)Bioluminescent foam/plankton stylePersistent puddles and flooding with depth awarenessCamera effects: underwater transitions, water-on-lens, blur, droplets, half-water lineOptimization & Integration:GPU-driven mesh generation via Quadtree LOD and procedural instancingAutomatic simulation LOD: particle count, update rate, and culling by distance/occlusionFull support for Built-in, URP, and HDRP pipelinesWrites to depth buffer (for DoF, third-party fog, volumetrics)One-click fog support: Enviro, Azure, Aura2, COZY, and moreIn-editor tooltips and documentation for every parameterQuality settings are linked to Unity's global quality levels for seamless scalingLimitations:While KWS2 offers a powerful and physically - grounded simulation system, there are a few important limitations to keep in mind:Not suited for extreme waves – The shallow water algorithm works best for low- to mid-scale wave heights. Using wave heights above ~20 meters may cause unnatural simulation behavior, artifacts, or instability. Use FFT ocean rendering for large-scale ocean swell instead.Simulation zones are flat – water doesn’t fall, only spreads across a surface. Sloped surfaces like waterfalls are handled visually and through flow redirection, but cannot simulate true 3D fluid volume or pressure.Overlapping simulation zones don't blend – Zones are isolated and do not share simulation data. Flow may not behave naturally at borders or overlaps. Future updates may include blending support where technically feasible.Objects outside of zone camera – Each simulation zone uses an orthographic camera to detect terrain and object intersections. This means only objects visible to that camera will influence the water. If part of an object (e.g. a rock or terrain overhang) is hidden behind another object or wall, like inside a cave or behind steep geometry - it won’t be visible to the zone camera and won't affect the simulation. As a result, water might appear to flow incorrectly over or through itNon-flat or steep surfaces - such as undercuts, cliffs, or slanted rocks — may not be properly recognized by the simulation. The system assumes surfaces are mostly horizontal or gently sloped, so vertical or inverted geometry might result in inaccurate water behavior (e.g. water flowing through or ignoring the surface).You can get all new beta changes/fixes/features and get support on theDiscord channelEmail: kripto289@gmail.com