Skip to content

[feat]: GPU-based 3D grid deformation using De Jong attractor#2

Merged
rorychatt merged 7 commits intoIvy-Interactive:mainfrom
ArtemLazarchuk:implement-better-UI
Jan 8, 2026
Merged

[feat]: GPU-based 3D grid deformation using De Jong attractor#2
rorychatt merged 7 commits intoIvy-Interactive:mainfrom
ArtemLazarchuk:implement-better-UI

Conversation

@ArtemLazarchuk
Copy link
Copy Markdown
Contributor

Overview

This PR introduces a new GPU-driven 3D grid deformation system based on a De Jong attractor flow field.
The visualization has been refactored from instanced squares into a single continuous plane geometry,
allowing smooth, volumetric deformation and large-scale looping structures.

Key changes

  • Replaced InstancedMesh grid with a shared PlaneGeometry to ensure continuous surface deformation
  • Implemented GPU-based attractor deformation in the vertex shader using De Jong equations
  • Added position-based Z displacement to create true volumetric depth and large swirling loops
  • Introduced multi-scale flow blending for richer and more organic deformation patterns
  • Exposed attractor parameters (A, B, C, D), strength, and speed via scene controls
  • Refined color scheme and grid aesthetics for improved readability and depth perception
  • Updated camera defaults to better emphasize 3D loops and surface curvature

Technical details

  • Deformation is computed per-vertex in the vertex shader based on world-space position
  • Flow field acts as a continuous velocity field, preserving mesh connectivity
  • Z deformation combines flow magnitude and attractor-based oscillation for increased volume
  • All animation runs fully on the GPU for performance and smoothness

Result

The grid now behaves as a single deformable surface capable of forming large loops,
swirls, and volumetric structures, instead of independent moving cells.
This significantly improves visual coherence and overall aesthetic quality.

@rorychatt rorychatt merged commit f83bc0c into Ivy-Interactive:main Jan 8, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants