ENG
0:00 / 0:00
KOR
0:00 / 0:00
0. Abstract (초록)

본 논문에서는 MLP(다층 퍼셉트론)로 표현되는 속도장을 위한 운동학적 신경 기저(kinematic neural basis)를 활용하는 메쉬-프리 유체 시뮬레이션을 제안합니다. 우리는 이 신경 기저가 직교성(orthogonality), 발산-없음(divergence-free), 경계 정렬(boundary alignment), 그리고 매끄러움(smoothness)과 같은 근본적인 물리적 속성을 근사하도록 보장하는 손실 함수 세트를 설계합니다. 우리의 신경 기저는 입력된 유동 스케치에 맞춰질 수 있으며, 이 유동은 기저로부터 동일한 근본적인 속성들을 물려받게 됩니다. 그 후 우리는 표준 시간 적분기를 사용하여 이러한 유동을 실시간으로 애니메이션할 수 있습니다. 우리의 신경 기저다양한 도메인움직이는 경계를 수용할 수 있으며, 자연스럽게 3차원으로 확장됩니다.

쪽집게 과외

핵심 콕콕

• MLP를 이용해 속도장을 표현하는 '운동학적 신경 기저'라는 새로운 개념을 제안합니다.
• 별도의 시뮬레이션 데이터 없이, 직교성, 발산-없음 등 물리 법칙에 기반한 손실 함수만으로 신경망을 학습시킵니다.
• 사용자가 그린 스케치로부터 유동을 생성하고, 이를 실시간으로 애니메이션 할 수 있습니다.
• 이 기저는 다양한 도메인 형태, 움직이는 경계에 대응 가능하며 3차원으로도 쉽게 확장됩니다.

쉬운 비유

운동학적 신경 기저(Kinematic Neural Basis)f>를 쉽게 비유해볼게요.

- '유체 움직임 전문가 레고 블록'이라고 생각할 수 있어요. 각 레고 블록(신경 기저)은 이미 물리 법칙을 잘 따르도록 만들어졌어요. 예를 들어, 용기 벽을 뚫고 나가지 않고(경계 정렬), 갑자기 물이 생기거나 사라지지 않도록(발산-없음) 설계된 거죠.
- 애니메이터는 이 전문가 블록들을 몇 개씩 쓸지만 정해서(스케치에 피팅) 초기 모양을 만들면, 그 후의 움직임은 레고 블록들이 알아서 자연스럽고 물리적으로 그럴듯하게 만들어줍니다.

셀프 테스트

[O/X]

정답 보기

이 논문에서 제안하는 신경 기저를 학습시키려면, 방대한 양의 실제 유체 시뮬레이션 결과 데이터가 반드시 필요하다.
정답: X
해설: 이 방법은 실제 시뮬레이션 데이터(ground truth) 없이, 직교성, 발산-없음 등 기본적인 물리 법칙을 만족하도록 설계된 손실 함수를 이용해 비지도 학습(unsupervised training)을 수행합니다.

[빈칸]

정답 보기

제안된 신경 기저는 사용자가 그린 ___에 맞춰 초기 유동을 생성하고, 이를 실시간으로 애니메이션 할 수 있다.
정답: 스케치
해설: 이 방법의 핵심 장점 중 하나는 스케치와 같은 희소한(sparse) 데이터로부터 복잡한 유체 애니메이션을 손쉽게 제어하고 생성할 수 있다는 점입니다.

[서술형]

정답 보기

이 논문의 방법이 기존의 물리 시뮬레이션과 비교하여 애니메이션 파이프라인 관점에서 갖는 가장 큰 차이점과 장점은 무엇일까요?
모범답안: 기존 물리 시뮬레이션은 초기 및 경계 조건을 입력하면 정해진 결과가 나오는 방식이라 아티스트의 세밀한 제어가 어렵습니다. 반면, 이 방법은 스케치를 통해 유동을 직접 디자인하고 실시간으로 결과를 확인하며 수정할 수 있어, 전통적인 애니메이션 파이프라인처럼 직관적이고 상호작용적인 제어가 가능하다는 장점이 있습니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00
1. Introduction (서론)

희소 데이터(sparse data)로부터 2D 또는 3D 형태를 애니메이션화하는 것은 컴퓨터 그래픽스의 핵심에 있는 복잡한 문제로, Badler와 Morris [1982] (Ref)의 선구적인 연구와 함께 시작되었습니다. 주요 동기는 복잡한 애니메이션과 변형이 스켈레톤(희소 데이터)에 의해 구동되는 캐릭터 애니메이션입니다 Lewis et al. 2000. 일반적인 문제는 상호작용적인 애니메이션과 형태 변형을 가능하게 하는 희소 표현(또는 기저)을 계산하는 것으로 추상화될 수 있습니다. 주요 과제는 생성된 모든 변형이 물리적으로 사실적으로 보이도록 보장하는 것이며, 이는 기저를 신중하게 설계함으로써 강제될 수 있습니다. 캐릭터 애니메이션에 머신러닝이 등장하면서, 노력은 기저를 만드는 것에서 그러한 기저를 위한 네트워크를 설계하는 것으로 옮겨갔습니다 Bertiche et al. 2021; Kavan et al. 2024; Li et al. 2021.

이와 병행하여, 머신러닝은 복잡하고 비용이 많이 드는 정확한 물리 시뮬레이션을 저렴한 네트워크로 대체할 수 있게 했는데 Du 2023, 특히 유체 시뮬레이션(섹션 2)에서 그러했습니다. 그러나 이러한 방법들은 물리 시뮬레이션과 동일한 "문제점"을 공유합니다: 입력은 시스템의 상태(초기 및 경계 조건)이고, 출력은 애니메이션이라는 점입니다. 이러한 설정은 애니메이션 파이프라인에 존재하는 세밀한 제어가 부족하고 희소 데이터로부터 제어할 수 있는 능력도 부족합니다.

저희는 애니메이터가 2차원 및 3차원에서 빠르고 상호작용적으로 유체 애니메이션을 디자인하고 구축할 수 있게 해주는 새로운 신경 운동학 기저(neural kinematic basis)를 제안합니다. 저희의 아이디어는 전통적인 애니메이션 파이프라인의 상호작용성과 용이성을 차용하고, 이를 물리 시뮬레이션에 사용되는 신경망 표현의 강력함과 결합하는 것입니다. 스켈레톤 애니메이션과 유사하게, 저희는 유체의 복잡한 동역학을 인코딩하는 기저를 설계하는 것을 목표로 합니다. 저희는 MLP로 신경망 기저를 표현하며, 이를 비압축성, 부드러움, 경계 정렬, 직교성과 같은 기본적인 물리적 속성만을 사용하여 순수하게 훈련합니다. 따라서 저희는 어떠한 정답 데이터(ground truth)도 필요하지 않습니다. 저희의 훈련 데이터는 적으며, 단지 신경망 기저가 새로운, 보지 못한 도메인으로 일반화할 수 있도록 하는 데만 사용됩니다. 저희는 MLP 네트워크가 근본적인 법칙을 인코딩하도록 강제하기 때문에, 저희 기저로부터 생성된 모든 애니메이션은 동일한 속성을 상속받게 됩니다. 초기 흐름을 피팅하고 나면, 표준 적분 기법을 사용하여 그럴듯한 유체 애니메이션을 만들 수 있습니다 (그림 1).

쪽집게 과외

알고리즘

flowchart TD classDef sub fill:#CCEFFF classDef warn fill:#FFD3C2 classDef core fill:#FFDBE6 classDef pros fill:#D0F1B9 subgraph 기존 접근법 A[스켈레톤 애니메이션]:::sub B[물리 시뮬레이션 기반 ML]:::sub end subgraph 한계점 A -- 제어 용이
물리적 정확성 부족 --> W1[현실감 저하]:::warn B -- 물리적 정확성 높음
제어 어려움 --> W2[창의적 제어 불가]:::warn end subgraph 제안 방법 C[신경 운동학 기저]:::core end W1 --> C W2 --> C C --> P1[상호작용적 제어 가능]:::pros C --> P2[물리 법칙 자동 만족]:::pros C --> P3[정답 데이터 불필요]:::pros

핵심 콕콕

• 기존 애니메이션 기법(예: 스켈레톤)은 제어는 쉽지만 물리적 현실감이 떨어집니다.
• 머신러닝 기반 물리 시뮬레이션은 현실적이지만, 애니메이터가 원하는 세밀한 상호작용적 제어가 어렵습니다.
• 이 논문은 두 장점을 결합한 '신경 운동학 기저(Neural Kinematic Basis)'를 제안하여, 애니메이터가 쉽게 제어하면서도 물리적으로 그럴듯한 유체 애니메이션을 만들 수 있게 합니다.
• 이 기저는 정답 데이터 없이 오직 비압축성, 경계 조건 등 기본적인 물리 법칙만을 이용해 훈련되므로 범용성이 높습니다.

함정 주의

이 논문에서 언급하는 두 종류의 머신러닝 접근법을 혼동하지 마세요.

1. 캐릭터 애니메이션용 머신러닝: 스켈레톤처럼 '희소한 데이터'로 전체적인 움직임을 제어하는 방법을 학습합니다. 주로 제어 용이성에 초점을 맞춥니다.

2. 물리 시뮬레이션 대체용 머신러닝: 유체 시뮬레이터처럼 복잡한 물리 계산 자체를 신경망으로 대체합니다. 주로 물리적 정확성과 속도에 초점을 맞춥니다.

이 논문의 제안 방법은 두 가지의 장점을 합친 하이브리드 방식입니다. 즉, '제어'를 위한 기저(basis)를 만들되, 그 기저 자체가 '물리 법칙'을 따르도록 학습시키는 것입니다.

쉬운 비유

신경 운동학 기저f>를 쉽게 비유해볼게요.

- '유체를 위한 똑똑한 스켈레톤'이라고 생각할 수 있습니다.
- 캐릭터 애니메이터는 모든 근육과 피부를 일일이 움직이지 않고, 스켈레톤(뼈대)만 움직이면 나머지는 자연스럽게 따라 움직입니다. 이 스켈레톤이 바로 '희소한 제어 데이터' 즉, '기저'입니다.
- 마찬가지로, 이 논문의 방법은 유체 내부에 물리 법칙을 이미 알고 있는 '보이지 않는 스켈레톤'을 심어두는 것과 같습니다. 애니메이터가 몇 개의 큰 물줄기 방향(스켈레톤의 팔다리를 움직이듯)만 지정해주면, 나머지 수많은 물방울들은 이 '똑똑한 스켈레톤'을 따라 물리적으로 가장 자연스러운 방식으로 알아서 움직여주는 것입니다.

셀프 테스트

[O/X]

정답 보기

이 논문이 제안하는 방법의 주된 목표는 기존 물리 시뮬레이션의 정확도를 최대한 높이는 것이다.
정답: X
해설: 이 방법의 핵심 목표는 물리적 현실감을 유지하면서 애니메이터에게 '상호작용적인 제어 능력'을 부여하는 것입니다. 정확도 향상보다는 제어 용이성과의 결합에 더 큰 중점을 둡니다.

[빈칸]

정답 보기

이 논문은 전통적인 애니메이션의 ( ① )과 물리 시뮬레이션의 ( ② )을 결합하기 위해 '신경 운동학 기저'라는 새로운 방법을 제안한다.
정답: ① 상호작용적 제어 (또는 제어 용이성), ② 물리적 현실감 (또는 정확성)
해설: 제안 방법은 두 기존 접근법의 장점만을 취하는 것을 목표로 합니다.

[서술형]

정답 보기

본 논문에서 제안하는 신경망 기저가 '정답 데이터(ground truth)' 없이 훈련될 수 있는 이유는 무엇인가요?
모범답안: 이 방법은 미리 만들어진 유체 시뮬레이션 결과(정답 데이터)를 학습하는 것이 아니라, 비압축성, 경계 조건, 직교성 등 유체가 따라야 할 보편적인 '물리 법칙' 자체를 손실 함수로 정의하여 학습하기 때문입니다. 네트워크가 생성한 기저가 이러한 물리 법칙을 얼마나 잘 만족하는지를 평가하여 역전파를 수행하므로, 특정 시뮬레이션 데이터에 의존하지 않고도 물리적으로 타당한 기저를 학습할 수 있습니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00
2 Related Work (관련 연구)

유체 역학의 차수 축소 모델Lumley/1967으로 거슬러 올라갑니다. 컴퓨터 그래픽스에서는 주성분 분석(PCA)을 사용하는 유사한 개념이 Pentland and Williams/1989에 의해 고체 변형의 자유도를 줄이는 방법으로 소개되었습니다. 이 기초적인 아이디어는 변형 가능 모델을 확장하는 광범위한 후속 연구를 촉발했습니다. 예를 들어, Barbič and James/2005는 질량 스케일링된 PCA를 활용하여 저차원 기저를 생성하는 축소 좌표 비선형 변형 모델을 위한 빠른 부공간 통합 방법을 제안했습니다. 그들은 모델 축소를 통해 내부 힘을 3차 다항식으로 미리 계산할 수 있어, 기하학적 구조와 무관한 비용으로 효율적인 시뮬레이션이 가능함을 보여주었습니다. PCA를 기반으로, Treuille et al./2006은 이 접근법을 유체 역학으로 확장하여, 전체 차원 시뮬레이션의 속도장에 PCA를 적용하여 축소된 차원의 속도 기저를 구축했습니다.

PCA 기반 방법의 계산적 어려움을 해결하기 위해, An et al./2008은 특정 부공간 변형과 관련된 힘 밀도의 효율적인 적분을 위해 최적화된 구적법(cubature schemes)을 도입했습니다. 유사하게, Kim and James/2009는 온라인 증분식 차수 축소 비선형 모델을 개발했습니다. 이후, Kim and Delaney/2013구적법을 확장하여 유체 부공간 내에서 일관된 준-라그랑지안 이류(semi-Lagrangian advection)를 효율적으로 수행하게 함으로써, 수정된 매개변수로 유체 시스템을 재시뮬레이션할 수 있게 했습니다. 이와 비교하여, 본 연구는 희소 통합 기법과 준-라그랑지안 이류를 사용합니다.

Von Tycowicz et al./2013은 축소된 힘을 근사하여 축소 동역학 시스템의 구축을 가속화했고, Umetani and Bickel/2018은 3D 장애물 주변의 유체 거동을 빠르게 예측하기 위해 데이터 기반 접근법을 사용합니다. 본 연구 또한 평활화된 경계 표시자와 도메인 마스크를 사용하여 근사를 통합합니다. 추가적으로, De Witt et al./2012는 유체를 벡터 라플라시안의 고유함수들의 선형 결합으로 표현하고, 나비에-스토크스 방정식의 갈료킨 이산화를 통해 시간 적분을 수행했습니다. 이 방법은 경계 유속에 해당하는 속도 성분을 투영하여 잠긴 강체를 지원했지만, Cui et al./2018은 이 접근법을 확장하여 디리클레 및 노이만 경계 조건을 처리했습니다. 그들은 Jones et al./2016의 연구를 따라 사인 및 코사인 변환을 활용하여 고유함수에 대한 저장 공간 요구량을 줄임으로써 확장성을 더욱 향상시켰습니다. 라플라시안 고유함수 방법에서 영감을 받아, Mercier and Nowrouzezahrai/2020Wicke et al./2009는 규칙적인 타일 위에서 축소된 기저 함수를 개발하고, 인접한 타일 간의 일관성 제약을 강제했습니다. 우리의 접근법은 기저 함수 관점을 채택하지만, 고유함수 대신 신경망 표현을 사용합니다. 단일 직사각형 도메인에서만 기저를 생성하고 명시적인 후처리 단계를 통해 장애물 경계를 처리하는 Cui et al./2018의 연구와 비교할 때, 우리의 신경망임의의 도메인에 걸쳐 일반화되도록 훈련되며 시뮬레이션 중에 기저를 즉석에서 평가합니다. Cui et al./2018의 연구는 도메인당 최소 5.5시간의 사전 계산이 필요하지만, 우리 모델일회성 비용으로 훈련된 후, 도메인별 사전 계산 없이 무제한 시뮬레이션을 지원합니다. 기저 생성 중에 장애물과 직사각형 경계를 모두 일관되게 처리함으로써, 우리 방법자연스럽게 미끄럼 방지(no-slip) 경계 조건을 만족시킵니다 (보충 자료 참조).

Yang et al./2015모달 행렬 구성, 구적법 훈련, 데이터셋 생성전통적인 접근법의 주요 병목 현상으로 지적했습니다. 대조적으로, 우리 방법은 유체 시뮬레이션에서 기하학적 불변량을 보존하도록 기저 함수를 훈련시킵니다. 유사하게, Xu and Barbič/2016은 서로 다른 객체 포즈에 대해 별도의 축소 모델을 미리 계산하고, 런타임에 이를 통합된 동적 시스템으로 결합했습니다. 우리는 복잡한 비선형 공간을 다루기 위해 지역적 기하학적 불변량을 활용하여 이 아이디어를 기반으로 합니다.

Romero et al./2021은 내부 및 외부 접촉 기반 효과를 분리하기 위해 선형 핸들 기반 부공간 공식을 비선형, 학습 기반 보정으로 보강했습니다. 본 연구에서는 문맥 정보에 신경 기저 함수를 조건화하여 접촉 처리를 달성합니다. 마찬가지로, Aigerman et al./2022는 불연속성을 처리하기 위해 평활화 기법을 통합하여 임의 메시의 조각별 선형 매핑을 예측하는 데 신경망을 사용했습니다. 우리는 이러한 문제를 해결하기 위해 유사한 경사도-평활화 전략을 채택합니다. 신경망 훈련을 위해 비지도 학습을 사용하는 차수 축소 시뮬레이션 방법을 제시한 Sharp et al./2023과 유사하게, 우리는 Karniadakis et al./2021에서 영감을 받아 물리 정보 기반 손실 함수 세트를 설계하여 우리 신경망의 비지도 훈련을 가능하게 합니다.

오일러 유체 구성 영역에서, Wu et al./2023잠재 공간 임베딩을 학습하고 잠재 변수의 사인 및 코사인에 기반한 선형 시간 통합 연산자를 적용했습니다. 더 나아가, Chen et al./2023bChang et al./2023은 변위장을 암시적 신경장(implicit neural fields)으로 인코딩된 연속적인 맵으로 표현하는 이산화에 독립적인 차수 축소 모델링을 도입했습니다. 이러한 아이디어를 확장하여, Chen et al./2023a물질점법(material point method)신경장을 적용했고, Tao et al./2024는 유체-유체 상호작용을 포착하기 위해 비선형 잠재 임베딩을 사용하는 신경 암시적 축소 유체 시뮬레이션을 제안했습니다.

본 연구는 학습된 기저 함수를 표현하기 위해 신경장 패러다임을 따르며, 이를 통해 기하학적 및 물리적 불변량을 보존하면서 견고하고 효율적인 차수 축소 유체 시뮬레이션을 가능하게 합니다.

쪽집게 과외

알고리즘

graph TD classDef core fill:#FFDBE6 classDef sub fill:#CCEFFF classDef idea fill:#E8D2E5 classDef pros fill:#D0F1B9 classDef warn fill:#FFD3C2 classDef ref fill:#EBEBEC A[차수 축소 모델]:::sub --> B[PCA 기반 방법]:::sub A --> C[고유함수 기반 방법]:::sub A --> D[학습 기반 방법]:::sub B -- "유체로 확장" --> B1[Treuille et al.]:::ref B -- "효율성 개선" --> B2[An et al.]:::ref C -- "벡터 라플라시안" --> C1[De Witt et al.]:::ref C1 -- "경계조건/확장성 개선" --> C2[Cui et al.]:::ref D -- "암시적 신경장" --> D1[Chen et al., Chang et al.]:::ref D -- "비지도 학습" --> D2[Sharp et al.]:::ref D -- "본 논문" --> E[신경 운동학 기저]:::core

핵심 콕콕

• 유체 시뮬레이션의 계산 비용을 줄이기 위한 초기 연구들은 PCA(주성분 분석)를 사용하여 데이터로부터 저차원 기저를 생성했습니다.
• 또 다른 주요 접근법은 라플라시안 고유함수와 같은 수학적 함수를 기저로 사용했지만, 이는 특정 도메인에 제한되고 사전 계산 비용이 높다는 단점이 있습니다.
• 최근 연구들은 신경망, 특히 신경장(neural fields)을 활용하여 기저 함수를 학습하는 방향으로 발전했으며, 이는 더 높은 유연성과 일반화 성능을 제공합니다.
• 본 논문은 신경망 접근법을 따르되, 사전 시뮬레이션 데이터 없이 물리 법칙(예: 비압축성)을 만족하도록 기저를 훈련시키는 비지도 학습 방식을 사용합니다. 이를 통해 임의의 도메인과 움직이는 경계에 대해 즉석에서 효율적인 시뮬레이션이 가능합니다.

함정 주의

다양한 '기저(basis)' 접근법을 혼동하지 마세요. 이들은 생성 방식과 특성이 다릅니다.
- PCA 기반 기저: 실제 시뮬레이션 데이터로부터 통계적으로 '가장 중요한' 움직임 패턴을 추출하여 만듭니다. 데이터에 의존적입니다.
- 고유함수 기반 기저: 특정 도메인에 대한 라플라시안과 같은 수학적 연산자의 고유한 함수(진동 모드)를 사용합니다. 분석적이지만 도메인에 고정됩니다.
- 신경망 기반 기저 (본 논문): 물리 법칙을 만족하도록 신경망 자체를 훈련시켜 함수(기저)를 '학습'합니다. 데이터가 아닌 법칙에 기반하며, 새로운 도메인에도 일반화될 수 있습니다.

쉬운 비유

차수 축소 모델f>을 쉽게 비유해볼게요.
복잡한 레고 성을 만드는 것과 같습니다.

- 비유 1 (전체 시뮬레이션): 수만 개의 1x1 레고 블록을 하나하나 쌓아 성을 만드는 것입니다. 매우 정교하지만 시간이 엄청나게 오래 걸립니다.

- 비유 2 (차수 축소 모델): 미리 만들어진 '성벽', '탑', '아치' 같은 큰 레고 부품(이것이 '기저'입니다) 몇 개를 조합해 성을 만드는 것입니다. 훨씬 빠르고 간단하게 그럴듯한 성을 만들 수 있습니다.
- PCA 기저: 다른 사람들이 만든 성들을 수천 개 보고 가장 많이 쓰인 부품 모양을 본떠서 만드는 것과 같습니다.
- 고유함수 기저: 수학 공식으로 정해진 완벽한 기하학적 모양의 부품(원기둥, 사각기둥 등)을 사용하는 것입니다.
- 신경망 기저 (본 논문): '튼튼하고 균형 잡힌 구조'라는 물리 법칙만 알려주면, 어떤 모양의 성이든 만들 수 있는 최적의 부품 세트를 스스로 설계하는 '스마트 부품 생성기'를 만드는 것과 같습니다.

셀프 테스트

[O/X] PCA 기반 차수 축소 모델은 기저를 생성하기 위해 사전 시뮬레이션 데이터가 필요 없습니다.

정답 보기

정답: X
해설: PCA는 전체 차원 시뮬레이션에서 생성된 속도장과 같은 데이터에 적용되어 주요 성분을 추출하므로, 사전 데이터가 필수적입니다.

[빈칸] 본 논문은 라플라시안 고유함수 대신 ___을 사용하여 기저 함수를 표현함으로써 임의의 도메인에 대한 일반화 성능을 높였습니다.

정답 보기

정답: 신경망 표현 (또는 신경망, MLP)
해설: 본문에서는 고유함수 대신 신경망 표현(neural representations)을 사용한다고 명시적으로 대조하고 있습니다.

[서술형] 본 논문의 접근법이 Cui et al. (2018)의 고유함수 기반 방법에 비해 갖는 핵심적인 장점 두 가지를 설명하세요.

정답 보기

모범답안: 첫째, 도메인별로 수 시간에 달하는 사전 계산이 필요 없이, 한 번의 훈련으로 임의의 도메인에 적용할 수 있습니다. 둘째, 단일 직사각형 도메인에 제한되지 않고 복잡하고 움직이는 경계를 가진 도메인에도 일반화하여 기저를 즉석에서 평가할 수 있습니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00
3 Method (방법)

우리 접근 방식의 핵심 아이디어는 유체 흐름 문제에서 흔히 나타나는 불변량을 따르는 비선형 신경 기저 함수(그림 2) 집합을 설계하는 것입니다. 우리의 신경 기저 $\phi_i$는 벡터 필드라는 점을 주목하세요. 이는 형상 함수가 스칼라 함수이고 미지 계수가 절점(nodal points)에 위치하는 벡터인 유한 요소 접근법과는 약간 다릅니다. 단위 크기의 둥근 사각형 도메인 $\Omega$에 $m$개의 잠재적으로 겹치는 원형 구멍이 있다고 가정합시다(그림 2). 이 도메인 위에서, 우리는 다음의 공통 불변량들을 만족하는 $b$개의 신경 기저 함수 $\phi_k, k=1...b$를 정의합니다.

발산(Divergence). 결정적으로, 비압축성 유체 시뮬레이션(비점성 등)을 위해, 우리의 기저가 발산이 없는(divergence-free) 속도장을 재구성할 수 있어야 합니다:

div($\phi_k$) = 0, $\forall k=1...b$.

경계(Boundary). 유체가 도메인 내에 머무르도록 보장하기 위해, 우리는 신경 기저가 슬립(slip) 경계 조건을 만족하도록 제한합니다.

$\langle n, \phi_k \rangle = 0$, $\forall k=1...b$,

여기서 $n$은 경계에서의 법선 벡터입니다.

직교정규성(Orthonormality). 기저들은 선형적으로 독립이어야 하며, 추가적으로 서로 직교해야 합니다.

$\int_\Omega \langle \phi_k, \phi_l \rangle = \delta_{k,l}$, $\forall k,l=1...b$.

이 기저들을 사용하여, 우리는 어떤 속도장이라도 다음과 같이 근사할 수 있습니다.

Eq. 1: 속도장 근사$$v(p) = \sum_{k=1}^{b} \phi_k(p) \alpha_k$$이 방정식은 임의의 속도장 $v(p)$를 $b$개의 신경 기저 함수 $\phi_k(p)$와 미지 계수 $\alpha_k$의 선형 결합으로 표현합니다. 이 구조 덕분에, 기저 함수 자체가 물리적 불변량을 만족하므로, 어떤 계수 $\alpha_k$를 선택하더라도 결과 속도장 $v(p)$는 자동으로 비압축성경계 조건을 만족하게 됩니다.

이는 명백히 위의 불변량들을 만족시키며, 표준적인 준-내재적 시간 적분기로 적분할 수 있는 그럴듯한 유체 시뮬레이션으로 이어집니다. 여기서 $\alpha_i$는 시뮬레이션 중에 풀어야 할 미지 계수입니다. 이들의 역할은 고유 모드(eigenmodes)의 가중치나 유한 요소법의 계수와 유사할 것입니다. 전통적인 유한 요소 기저와는 다르게, 속도 $v$는 $\alpha_i$의 선택과 독립적으로 공통 불변량을 만족할 것입니다. 우리의 $\alpha_i$는 공간상의 절점 위치에 존재하지 않고 추상적인 전역 설정에 존재합니다. 우리의 선택은 자유도를 공격적으로 줄입니다.

우리의 목표는 도메인(원으로 인코딩)과 평가 지점 모두에 의존하는 신경 기저 함수 $\phi_i$ 집합을 학습하여, (1)을 유체 시뮬레이션을 위한 운동학적 신경 기저로 사용하는 것입니다. 이렇게 함으로써, 우리는 주어진 도메인에 대해 특정 기저를 빠르게 평가할 수 있고(추론 시간에 평가가 이루어지므로), 따라서 실시간으로 유체 애니메이션을 생성할 수 있습니다. 우리의 설계 파이프라인(그림 3)은 도메인 $\Omega$의 입력 스케치와 흐름을 안내하는 곡선들로 시작하며, 이를 우리의 신경 기저에 피팅합니다(섹션 3.4). 신경 기저를 얻기 위해, 우리는 평균적으로 유체 불변량을 근사하는 기저를 생성하는 손실 함수 집합을 정의하고(섹션 3.2), 이를 다른 도메인에서 (비지도 방식으로) 훈련합니다(섹션 3.3). 마지막으로, 초기 유체를 이류시켜(섹션 3.5) 유체 애니메이션을 생성합니다.

쪽집게 과외

알고리즘

flowchart TD classDef core fill:#FFDBE6; classDef idea fill:#E8D2E5; classDef sub fill:#CCEFFF; sub_input[입력 스케치
(도메인 + 흐름 가이드)]:::sub --> fit[기저 피팅]:::core sub_mlp{사전 훈련된 MLP} -- 생성 --> basis[신경 운동학적 기저
(Neural Basis)]:::core idea_props[물리적 불변량
(발산, 경계, 직교성)]:::idea -- 학습 제약 --> sub_mlp basis --> fit fit --> vel[초기 속도장 계산]:::core vel --> advect[반-라그랑주 이류]:::core advect --> anim[애니메이션 생성]:::sub

핵심 콕콕

• 이 연구의 핵심은 유체 시뮬레이션을 위한 비선형 '신경 기저 함수' 집합을 설계하는 것입니다.
• 이 기저 함수들은 훈련 단계에서부터 발산 없음(divergence-free), 경계 조건 만족, 직교성과 같은 핵심 물리적 불변량을 따르도록 강제됩니다.
• 최종 속도장은 이 기저 함수들의 선형 결합으로 표현되며, 덕분에 어떤 계수를 사용하더라도 결과는 항상 물리적으로 타당한 흐름을 보장합니다.
• 이 접근법은 전통적인 방식에 비해 자유도를 크게 줄여 실시간 애니메이션 생성을 가능하게 합니다.
• 전체 파이프라인은 스케치 입력, 기저 함수 피팅, 그리고 표준적인 이류(advection) 단계를 통해 애니메이션을 생성하는 과정으로 이루어집니다.

함정 주의

신경 기저 함수와 유한 요소법(FEM)의 기저 함수를 혼동하지 마세요.

- 신경 기저: 벡터 필드이며, 기저 함수 '자체'가 물리 법칙(발산 없음 등)을 만족하도록 훈련됩니다. 계수(α)는 공간상의 위치와 무관한 전역 파라미터입니다.
- FEM 기저: 보통 스칼라 형상 함수이며, 물리 법칙은 전체 시스템 방정식을 풀 때 절점(node)에 위치한 계수들에 부과됩니다.

쉬운 비유

신경 기저 함수f>를 쉽게 비유해볼게요.

- '레고 블록'을 만드는 것과 비슷해요. 일반 레고는 그냥 네모난 블록(FEM 기저)이라서, 이걸로 자동차를 만들려면 바퀴, 차체, 창문 모양을 하나하나 신경 써서 조립해야 하죠. 조금만 잘못하면 자동차처럼 안 보일 수 있어요.

- '신경 기저 함수'는 '미리 만들어진 자동차 부품 세트'와 같아요. 예를 들어 '바퀴 세트', '차체 세트', '문짝 세트'처럼요. 이 부품들은 이미 그 자체로 자동차의 일부처럼 완벽하게 디자인되어 있어요(물리 법칙 만족). 우리는 그냥 이 부품들을 몇 개씩 쓸지(계수 α)만 결정해서 조립하면, 누가 만들어도 항상 멋진 자동차(그럴듯한 유체 흐름)가 뚝딱 완성되는 거죠.

셀프 테스트

[O/X]

정답 보기

이 논문에서 제안하는 신경 기저 함수(neural basis functions)는 스칼라 필드이다.
정답: X
해설: 본문에서 명시적으로 '우리의 신경 기저는 벡터 필드'라고 설명하고 있습니다. 이는 각 기저 함수가 공간의 각 점에서 크기와 방향을 모두 갖는다는 의미입니다.

[빈칸]

정답 보기

제안된 신경 기저는 서로 선형적으로 독립적이며, 추가적으로 서로 ___해야 한다는 조건을 만족한다.
정답: 직교(orthogonal)
해설: 기저 함수들이 서로 독립적인 정보를 표현하도록 하기 위해 직교정규성(Orthonormality) 조건을 부여합니다. 이는 한 기저의 변화가 다른 기저에 미치는 영향을 최소화합니다.

[서술형]

정답 보기

이 방법에서 속도장을 기저 함수의 선형 결합으로 표현했을 때, 전통적인 유한 요소법과 비교하여 갖는 근본적인 장점은 무엇인가요?
모범답안: 가장 큰 장점은 속도장을 계산하는 데 사용되는 계수(α)의 값과 무관하게, 결과 속도장 자체가 항상 발산 없음(divergence-free)이나 경계 조건 같은 내재적인 물리 법칙을 만족한다는 점입니다. 이는 기저 함수를 훈련할 때부터 이러한 물리적 불변량을 따르도록 설계했기 때문입니다. 반면 유한 요소법에서는 이러한 제약 조건이 전체 시스템의 해(계수)를 구하는 과정에서 부과되므로 계산이 더 복잡하고 자유도가 높습니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00
3.1 Domain (도메인)

우리는 반지름이 0.2인 둥근 모서리를 가진 단위 정사각형장애물 블롭으로 도메인을 인코딩합니다. 표현을 단순하게 유지하기 위해, 우리는 10개의 음함수 원(3D에서는 구)을 사용합니다.

Eq.: 개별 원의 음함수$$f_i(p) = \|p - c_i\|^2 - r_i^2 \quad \text{with } i=1, \dots, 10,$$이 수식은 단일 원(또는 구)을 정의하는 음함수입니다. 여기서 $p$는 평면(또는 공간) 상의 한 점, $c_i$는 원의 중심, $r_i$는 반지름입니다. 함수 값 $f_i(p)$가 0보다 작으면 점 $p$는 원 내부에, 0이면 경계에, 0보다 크면 외부에 있습니다.

여기서 $p$는 평면(또는 공간) 상의 한 점이고, $c_i$는 원의 중심이며, $r_i$는 반지름입니다. 우리는 Blinn/1982/Blobs메타볼 또는 블롭에서 영감을 받아 이들을 결합하여 다음과 같은 음함수를 생성합니다.

Eq.: 결합된 음함수$$f(p) = \ln\left( \sum_{i=1}^{10} e^{-k f_i(p)} \right) / k,$$이 수식은 10개의 개별 원 함수 $f_i(p)$를 하나의 부드러운 형태로 결합합니다. 메타볼과 유사한 원리로, 여러 개의 원이 가까워지면 자연스럽게 합쳐져 복잡한 장애물 모양을 만듭니다. 여기서 $k$는 결합의 부드러움을 제어하는 매개변수입니다.

여기서 $k$는 부드러움을 제어합니다(우리의 결과에서는 항상 $k=30$을 사용합니다).

우리는 도메인과 독립적으로 평면을 샘플링하기 때문에, 도메인 밖의 점들을 걸러내기 위해 소프트 마스크를 적용합니다. 먼저 경계 표시 함수를 정의합니다 (그림 4, 왼쪽).

Eq.: 경계 표시 함수$$d(p) = \frac{2|f(p)|^3}{\epsilon^3} - \frac{3|f(p)|^2}{\epsilon^2} + 1$$ $$w_b(p) = \begin{cases} 0, & |f(p)| > \epsilon \text{ or } d(p) < 0 \\ d(p)^4 & \text{otherwise.} \end{cases}$$이 함수 $w_b(p)$는 도메인 경계 근처에서 부드러운 감쇠 효과를 만들어냅니다. 도메인 경계로부터 거리 $\epsilon$ 이내의 좁은 밴드 영역에서 0과 1 사이의 값을 가지며, 경계에서 멀어질수록 부드럽게 0으로 수렴합니다. 이는 경계 조건을 강제할 때 미분 가능한 방식으로 가중치를 부여하는 데 사용됩니다.

그런 다음, 도메인 밖의 모든 $w_b$ 값을 0으로 설정하고 도메인 안의 값들을 1로 설정하여 마스크 $w$를 정의합니다 (그림 4, 오른쪽). 이 함수는 도메인 내부에서는 1이고, 경계에서 $\epsilon$보다 멀리 떨어진 모든 점에서 0으로 떨어집니다. 이 함수는 도메인 외부의 작은 영역에서 0이 아닌 값을 가지므로, 우리는 $[-\epsilon, 1 + \epsilon]^2$ 도메인에서 적분을 근사합니다. 손실 함수가 점의 개수와 위치에 독립적이도록 보장하기 위해, 우리는 다음과 같이 정규화합니다.

Eq.: 정규화 계수$$S = Wb, \quad \text{with} \quad W = \sum_{i=1}^{m} w(p_i).$$이 수식은 손실 계산을 위한 정규화 계수 $S$를 정의합니다. $W$는 모든 샘플링된 점 $p_i$에서의 마스크 $w$ 값의 총합으로, 유효 샘플의 가중치 합을 나타냅니다. 이를 통해 몬테카를로 적분 시 샘플링 밀도에 관계없이 일관된 손실 값을 얻을 수 있습니다.

쪽집게 과외

알고리즘

flowchart TD classDef def fill:#FEEEB5 classDef idea fill:#E8D2E5 subgraph 도메인 표현 과정 A[10개의 음함수 원 정의]:::def B[메타볼 방식으로 결합
(f(p) 생성)]:::idea C[경계 표시 함수 계산
(w_b(p) 생성)]:::idea D[최종 소프트 마스크 생성
(w(p) 생성)]:::def end A --> B --> C --> D

핵심 콕콕

• 도메인과 장애물은 10개의 원(구)을 '메타볼'처럼 부드럽게 합치는 음함수 방식으로 표현됩니다.
• 도메인 내부/외부를 명확히 구분하는 대신, 경계 근처에서 부드럽게 값이 변하는 '소프트 마스크'를 사용합니다. 이는 미분 가능한 학습에 필수적입니다.
• 손실 함수를 계산할 때, 샘플링된 점의 개수나 분포에 영향을 받지 않도록 마스크 값의 총합으로 정규화합니다.

함정 주의

음함수 f(p), 경계 표시 함수 w_b(p), 마스크 w(p)를 혼동하지 마세요.
- f(p)는 도형의 기하학적 형태 그 자체를 정의합니다. (값이 0인 곳이 경계)
- w_b(p)는 경계 주변의 좁은 띠(band) 영역에서만 0이 아닌 값을 가지며, 경계 조건을 적용하기 위한 가중치 함수입니다.
- w(p)는 도메인 '내부'에서는 1, '외부'에서는 0의 값을 갖는 최종 마스크 함수로, 도메인 전체에 대한 적분(손실 계산)에 사용됩니다.

구현 힌트

도메인 경계에서 미분 불가능한 지점이 생기는 것을 피하기 위해 소프트 마스크를 사용하는 것은 물리 기반 딥러닝에서 흔히 사용되는 기법입니다. 경계 조건을 손실 함수에 포함시킬 때, if문과 같은 불연속적인 로직 대신 이처럼 부드럽게 0으로 수렴하는 가중치 함수(w_b(p))를 곱해주면 역전파가 안정적으로 이루어집니다. d(p) 함수는 3차 에르미트 보간(Cubic Hermite interpolation)의 기반 함수와 유사한 형태로, 부드러운 전환(smooth transition)을 만드는 데 효과적입니다.

쉬운 비유

메타볼(Metaballs)f>을 쉽게 비유해볼게요.
- 물방울들을 생각해보세요. 여러 개의 물방울이 따로 떨어져 있을 때는 각자 동그란 모양을 유지합니다. 하지만 두 물방울이 충분히 가까워지면, 표면 장력 때문에 '착'하고 합쳐져 하나의 더 큰 물방울 덩어리가 되죠. 이때 합쳐지는 부분이 날카로운 각 없이 아주 부드럽게 연결됩니다.
- 이 논문에서 10개의 원을 결합하는 방식이 바로 이와 같습니다. 각 원을 물방울이라고 생각하면, 이들을 합쳐 복잡하지만 매끄러운 경계를 가진 장애물 모양(블롭)을 만들어내는 것입니다.

셀프 테스트

[O/X] 마스크 함수 w(p)는 도메인 외부의 모든 점에서 항상 정확히 0의 값을 가진다.

정답 보기

정답: X
해설: 도메인 경계로부터 ε 이내의 좁은 외부 영역에서는 0이 아닌 값을 가질 수 있습니다. 이는 경계 근처에서 부드러운 처리를 하기 위함입니다.

[빈칸] 음함수 f(p)를 결합할 때, 매개변수 ___는 장애물 형태의 부드러움을 제어한다.

정답 보기

정답: k
해설: k 값이 클수록 각 원의 형태가 더 뚜렷하게 유지되고, 작을수록 더 뭉툭하고 부드럽게 합쳐집니다. 본문에서는 k=30을 사용했습니다.

[서술형] 손실 함수를 정규화하는 이유를 샘플링 관점에서 설명하시오.

정답 보기

모범답안: 손실 함수는 몬테카를로 적분을 통해 근사되는데, 이때 도메인 내에서 점들을 무작위로 샘플링합니다. 만약 정규화를 하지 않으면, 샘플링된 점의 총 개수나 분포에 따라 손실 값의 스케일이 계속 바뀌게 됩니다. 마스크 값의 총합으로 나누어 정규화함으로써, 샘플링 방식에 관계없이 일관된 스케일의 손실 값을 얻을 수 있어 안정적인 학습이 가능해집니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00
3.2 Losses (손실 함수)

우리는 운동학적 신경 기저의 물리적 적합성을 측정하는 손실 함수 집합을 정의하는 것으로 진행하겠습니다. 우리의 기저 신경장 $\phi_i$는 $n$개의 무작위로 샘플링된 점 $p_i$ 모음에 대해 이러한 손실들을 종합하여 최소화함으로써 계산될 것입니다. 이 샘플링은 몬테카를로 적분을 사용하는 것으로 볼 수 있습니다. 우리 접근법의 주요 장점은 발산 없음(divergence-free)이나 미끄러짐 경계 조건(slip boundary conditions)과 같은 근본적인 물리적 속성에만 순수하게 의존하며, 어떠한 정답 데이터도 필요로 하지 않는다는 것입니다. 우리는 단지 기저 함수들이 도메인에 대해 일반화되기를 요구할 뿐입니다.

우리의 MLP 네트워크 $F$의 입력은 평가점 $p \in R^2$와 $m$개 원의 중심 $c$ 및 반지름 $r$입니다. 이는 $b$개의 기저 함수 집합 $\phi_k(p)$를 생성합니다. 즉,

$F(p, \rho, \theta) = \{\phi_k(p)\}_{k=1,...,b}$,

여기서 $\rho = \{c_i, r_i\}_{i=1}^m$는 원의 집합, $\theta$는 MLP 파라미터, 그리고 $\phi_k(p)$는 $p$에서 평가된 우리의 신경 기저입니다.

이제 발산 불변성을 평균으로 인코딩할 수 있으며, 손실은 다음과 같습니다.

Eq. 2: 발산 손실$$L_{\text{div}}(\theta) = \sum_{k=1}^{b} \sum_{i=1}^{n} \text{div}(\phi_k(p_i))^2 w(p_i) / S.$$이 손실은 신경 기저 $\phi_k$가 평균적으로 발산이 없는(divergence-free) 조건을 만족하도록 강제합니다. 각 샘플링 지점 $p_i$에서 발산의 제곱을 계산하고, 도메인 마스크 $w(p_i)$로 가중치를 부여하여 합산합니다. 이는 비압축성 유체의 질량 보존 법칙을 근사합니다.

흥미롭게도, 우리는 개별 $\phi_i$가 발산이 없을 것을 요구하지는 않지만, (예를 들어 다른 경계 조건 하에서) 발산 없는 장을 생성할 수 있는 표현력 있는 기저를 원합니다.

다음으로, 평균 미끄러짐 경계 조건에 대한 손실을 공식화합니다.

Eq. 3: 경계 조건 손실$$L_{\text{bc}}(\theta) = \sum_{k=1}^{b} \sum_{i=1}^{n} \text{cossim}(\phi_k(p_i), n(p_i))^2 w_b(p_i) / S_b$$이 손실은 유체가 도메인 경계를 뚫고 나가지 않도록 하는 미끄러짐 경계 조건을 강제합니다. 기저 벡터 $\phi_k(p_i)$와 경계의 법선 벡터 $n(p_i)$ 사이의 코사인 유사도를 제곱하여, 두 벡터가 수직(즉, 기저 벡터가 경계에 평행)이 되도록 유도합니다. 경계 표시 함수 $w_b(p_i)$를 사용하여 경계 근처의 점들에만 이 손실을 적용합니다.

여기서

$$\text{cossim}(a,b) = \frac{\langle a,b \rangle}{\|a\|\|b\|}$$

는 코사인 유사도이며, $n(p_i)$는 도메인 경계 위의 가장 가까운 점에서의 법선 벡터입니다. 이것은 (다른 가중 함수를 가진) 경계 적분의 이산화이므로, 이 손실을 $S_b = b \sum_i w_p(p_i)$로 정규화합니다.

마지막으로, 모든 기저가 동일해지는 것을 방지하기 위해, 평균 직교성을 강제합니다.

Eq. 4: 직교성 손실$$L_{\text{orth}}(\theta) = \sum_{i=1}^{n} \sum_{k=1}^{b} \sum_{l=k+1}^{b} \langle \phi_k(p_i), \phi_l(p_i) \rangle w(p_i) / S_o.$$이 손실은 서로 다른 기저 함수 $\phi_k$와 $\phi_l$이 서로 독립적이 되도록 합니다. 모든 샘플링 지점에서 기저 함수 쌍 사이의 내적(inner product)을 최소화하여 직교성을 장려합니다. 이는 기저들이 유체 흐름의 다양한 모드를 표현하도록 하여 표현력을 높입니다.

기저의 수로 정규화하는 대신, 점 $p$의 쌍의 수로 정규화합니다 ($S_o = Wp$). 세 번째 합이 $k+1$에서 시작하므로 이 손실은 기저가 단위 길이 $\langle\phi_k(p_i), \phi_k(p_i)\rangle = 1$을 가질 것을 요구하지 않는다는 점에 주목합니다. 대신, 우리는 벡터의 길이가 목표값 $c$에 가깝도록 요구함으로써 벡터의 평균 길이를 명시적으로 요구합니다.

Eq. 5: 길이 손실$$L_{\text{len}}(\theta) = \sum_{k=1}^{b} \left( \sum_{i=1}^{n} \|\phi_k(\theta, p_i)\| w(p_i) / W - c \right)^2 / b,$$이 손실은 각 기저 함수 벡터의 평균 길이가 목표값 $c$에 가깝도록 조절합니다. 이는 기저 함수들이 너무 커지거나 작아지는 것을 방지하여 학습 과정을 안정화시키는 역할을 합니다.

그리고 작은 기저에 페널티를 부과합니다.

Eq. 6: 최소 크기 페널티$$L_{\text{small}}(\theta) = \sum_{k=1}^{b} \sum_{i=1}^{n} \text{ReLU}(\delta - \|\phi_k(p_i)\|) w(p_i) / S.$$이 손실은 기저 함수 벡터의 크기가 임계값 $\delta$보다 작아지는 것을 방지합니다. ReLU 함수를 사용하여 벡터 크기가 $\delta$보다 작을 때만 페널티를 부과하며, 모든 기저 함수가 유의미한 값을 갖도록 하여 모델 붕괴(collapse)를 막습니다.

마지막으로, 학습 과정을 용이하게 하기 위해, 기저의 부드러움을 장려하는 손실을 추가합니다.

Eq. 7: 부드러움 손실$$L_{\text{smooth}}(\theta) = \sum_{k=1}^{b} \sum_{i=1}^{n} \|J\phi_k(p_i)\|_{F}^2 w(p_i) / S,$$이 손실은 기저 함수가 공간적으로 부드럽게 변하도록 합니다. 야코비 행렬 $J\phi_k(p_i)$의 프로베니우스 노름(Frobenius norm)을 최소화하여, 속도장의 급격한 변화를 억제하고 물리적으로 더 자연스러운 유체 흐름을 생성하도록 유도합니다.

여기서 $J\phi_k(p_i)$는 야코비 행렬입니다.

우리는 앞서 언급한 6개의 손실을 각각의 가중치와 함께 합하여 유체 손실 L_fluid를 공식화합니다.

쪽집게 과외

핵심 콕콕

• 이 섹션은 신경 기저 함수가 물리 법칙을 따르도록 훈련시키는 6가지 손실 함수를 정의합니다.
• 핵심 물리 제약: 발산 없음(L_div), 경계 조건(L_bc), 직교성(L_orth)을 손실 함수로 강제합니다.
• 학습 안정화: 기저 함수의 크기(L_len, L_small)와 부드러움(L_smooth)을 조절하여 안정적인 학습을 유도합니다.
• 비지도 학습: 정답 데이터 없이 물리 법칙 기반 손실 함수만으로 네트워크를 훈련하는 것이 핵심입니다.

함정 주의

개별 기저 함수(φₖ)가 완벽히 '발산이 없어야 한다'는 것과, 기저 함수들의 '조합'으로 만들어진 속도장이 '발산이 없어야 한다'는 것을 혼동하지 마세요.
이 논문의 목표는 개별 기저 함수 하나하나가 완벽한 물리 법칙을 따르는 것이 아니라, 이들의 선형 결합으로 표현될 최종 속도장이 물리적으로 타당하도록 만드는 '표현력 좋은 기저들의 집합'을 학습하는 것입니다. 따라서 손실 함수들은 완벽한 0을 강제하기보다 평균적인 제약을 가하는 형태로 설계되었습니다.

구현 힌트

MLP로 표현된 신경장 φₖ(p)의 발산(divergence)이나 야코비안(Jacobian)은 PyTorch와 같은 자동 미분 프레임워크를 사용하면 쉽게 계산할 수 있습니다. `torch.autograd.grad`를 사용하여 출력 벡터 필드의 각 성분을 입력 좌표 p의 각 성분으로 미분하여 야코비안 행렬을 구하고, 그 행렬의 대각합(trace)을 계산하면 발산을 얻을 수 있습니다.

쉬운 비유

물리 기반 손실 함수f>를 스포츠 팀 훈련에 비유해볼게요.
- 팀 규칙 (물리 법칙): 감독(MLP)이 선수들(기저 함수 φₖ)에게 팀 규칙을 가르칩니다.
- L_div (발산 없음): "공(유체)이 엉뚱한 곳으로 새어나가지 않게 패스해라!" (질량 보존)
- L_bc (경계 조건): "경기장 라인 밖으로 나가지 마라!" (유체가 경계를 벗어나지 않음)
- L_orth (직교성): "선수들끼리 포지션이 겹치지 않게 각자 다른 역할을 맡아라!" (기저 함수들이 서로 독립적)
- L_len/L_small (크기 조절): "너무 소극적으로 뛰지도, 너무 오버하지도 말고 적당한 에너지로 뛰어라!" (기저 함수가 0이 되거나 폭주하는 것 방지)
- L_smooth (부드러움): "움직임이 갑자기 뚝뚝 끊기지 않고 부드럽게 이어지도록 해라!" (자연스러운 유체 흐름)
이렇게 여러 규칙(손실 함수)을 동시에 만족하도록 훈련하면, 개별 선수가 완벽하지 않아도 팀 전체(최종 속도장)가 훌륭한 플레이를 펼칠 수 있게 됩니다.

셀프 테스트

[O/X] 이 논문에서 사용된 L_div 손실 함수는 각각의 개별 기저 함수 φₖ가 완벽하게 발산이 0이 되도록 강제한다.

정답 보기

정답: X
해설: L_div 손실 함수는 개별 기저 함수가 아닌, 기저 함수들의 집합이 평균적으로 발산이 없는 속성을 갖도록 유도합니다. 본문에서도 "개별 φᵢ가 발산이 없을 것을 요구하지는 않는다"고 명시하고 있습니다.

[빈칸] 유체가 도메인 경계면을 따라 미끄러지도록(slip) 강제하며, 기저 벡터가 경계면의 법선 벡터와 수직이 되도록 유도하는 손실 함수는 ___ 이다.

정답 보기

정답: L_bc (경계 조건 손실)
해설: L_bc는 기저 벡터와 경계 법선 벡터 간의 코사인 유사도를 최소화하여 두 벡터가 수직이 되도록, 즉 유체가 경계에 평행하게 흐르도록 만듭니다.

[서술형] L_orth 손실 함수가 모든 기저 함수가 동일해지는 것을 방지하는 원리는 무엇이며, 왜 합의 시작 인덱스가 l=k+1로 설정되었는지 설명하시오.

정답 보기

모범답안: L_orth는 서로 다른 두 기저 함수(φₖ, φₗ)의 내적(inner product)을 최소화하여 두 함수가 직교하도록, 즉 서로 독립적이 되도록 강제합니다. 만약 모든 기저 함수가 동일하다면 내적 값이 커져 손실이 증가하므로, 이를 방지할 수 있습니다. 합의 시작 인덱스가 l=k+1인 이유는 (k, l)과 (l, k) 쌍의 중복 계산을 피하고, k=l인 경우(자기 자신과의 내적)를 제외하여 각 기저 함수의 길이에 대한 제약이 아닌 순수한 직교성만을 측정하기 위함입니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00
3.3 Training (학습)

우리는 10개의 원으로 표현되는 도메인에서 학습을 진행합니다. 우리의 신경장(neural fields)은 8개의 완전 연결 계층을 가진 MLP로 매개변수화되며, 이 MLP는 (음수를 생성하기 위해 마지막 계층에서는 ELU를 사용하는 것을 제외하고) leaky ReLU 활성화 함수를 사용하고 계층당 256개의 채널을 가집니다 (그림 5). 입력 벡터는 하나의 샘플 포인트 $p_i$의 위치와 10개의 원 매개변수를 연결한 것입니다. 출력 벡터는 $b$개의 신경 기저(neural bases) 평가를 위한 벡터로 구성됩니다. 우리는 유체 손실 함수의 각 항에 다음과 같은 가중치를 할당합니다: ($w_{drch}$, $w_{div}$, $w_{orth}$, $w_{bc}$, $w_{len}$, $w_{small}$) = (0.01, 5, 100, 30, 100, 100). 우리는 작은 기저 패널티를 위한 임계값 $\delta$를 0.05로, 길이 패널티를 위한 평균 길이는 $c=0.37$로 선택합니다.

MLP는 매개변수에 대해 Kaiming 초기화를 사용합니다. 우리는 MLPAdam 옵티마이저를 사용하여 학습시키며, 학습률은 0.0005로 초기화합니다. 학습률을 동적으로 조정하기 위해, 우리는 ExponentialLR 스케줄러를 사용했으며, 0.96의 감쇠 계수를 적용하여 에포크당 학습률이 $LR \times 0.96^t$로 조정되도록 했습니다. 여기서 $t$는 에포크입니다.

우리는 1000개의 다른 기하학적 샘플에 대해 학습을 진행합니다. 이 샘플들은 중심이 $[0.225, 0.675]^d$ 정사각형 또는 정육면체 내에 있고 반지름이 $[0.03, 0.09]$ 구간에 있는 무작위로 생성된 2D 원과 3D 구, 두세 개의 구성 요소로 무작위 생성된 모양, 그리고 2D에서는 영어 알파벳 글자를 나타내는 모양을 포함합니다. 이들은 (부분적으로) 겹치거나 분리될 수 있습니다. 각 샘플에 대해, 우리는 도메인 전체에 걸쳐 $n=10^6$개의 점을 무작위로 샘플링합니다. 학습은 총 10 에포크 동안 배치 크기 $10^4$으로 수행되었습니다. 구현은 PyTorch를 기반으로 하며, 단일 NVIDIA GeForce RTX 3090 GPU에서 3D 모델의 경우 23.6시간, 2D 모델의 경우 22.9시간의 학습 시간이 소요되었습니다.

쪽집게 과외

핵심 콕콕

• MLP 구조: 8개의 완전 연결 계층, Leaky ReLU 활성화 함수(마지막 층은 ELU), 계층당 256 채널.
• 손실 함수 가중치: 직교성(100), 길이(100), 경계 조건(30) 등 물리적 제약에 높은 가중치를 부여하여 기저 함수가 물리 법칙을 따르도록 유도.
• 학습 설정: Adam 옵티마이저와 ExponentialLR 스케줄러를 사용하여 학습률을 동적으로 조정.
• 데이터셋: 1000개의 다양한 기하학적 샘플(원, 구, 알파벳 등)을 사용하여, 보지 못한 도메인에 대한 일반화 성능을 높임.

구현 힌트

실제 구현 시, 손실 함수 가중치($w_{orth}=100, w_{bc}=30$ 등)는 매우 중요한 하이퍼파라미터입니다. 논문에서 제시된 값으로 시작하되, 학습이 불안정하거나 특정 물리적 제약(예: 경계 조건)이 잘 지켜지지 않으면 해당 가중치를 조절해보세요. 특히 직교성($w_{orth}$)에 높은 가중치를 부여하여 기저 함수들이 서로 독립적으로 유의미한 특징을 학습하도록 유도하는 것이 핵심입니다.

셀프 테스트

[O/X] 본 연구의 MLP는 마지막 레이어를 포함한 모든 레이어에서 leaky ReLU 활성화 함수를 사용한다.

정답 보기

정답: X
해설: 마지막 레이어는 음수 값을 출력할 수 있도록 ELU 활성화 함수를 사용합니다.

[빈칸] 학습률을 동적으로 조절하기 위해 ___ 스케줄러를 사용했다.

정답 보기

정답: ExponentialLR
해설: ExponentialLR 스케줄러를 사용하여 에포크가 진행됨에 따라 학습률을 점진적으로 감소시켰습니다.

[서술형] 본 논문에서 다양한 기하학적 샘플(원, 구, 알파벳 등)을 학습 데이터로 사용하는 이유는 무엇일까요? 단일한 형태의 도메인만 학습했을 때 발생할 수 있는 문제점과 연관지어 설명해보세요.

정답 보기

모범답안: 다양한 기하학적 샘플을 사용하는 이유는 신경 기저 함수가 새롭고 보지 못한 도메인에 대해서도 잘 일반화되도록 하기 위함입니다. 만약 단 하나의 고정된 형태의 도메인에서만 학습한다면, MLP는 해당 특정 형태에 과적합(overfitting)되어 다른 모양의 경계나 움직이는 경계를 만났을 때 유효한 기저 함수를 생성하지 못할 것입니다. 이는 논문의 핵심 목표인 다양한 도메인에서의 실시간 시뮬레이션 능력을 저해하는 심각한 문제가 됩니다.

3.4 Fitting to a Sketch (스케치에 맞추기)

이제 우리는 신경 기저를 사용하여 입력 이미지를 애니메이션화하고자 합니다. 이 이미지는 원의 위치와 매개변수 곡선 $\gamma(t)$로 표현되는 여러 유선을 포함합니다. 먼저 원과 몇 개의 곡선을 그리면, 이것만으로도 빠르게 속도장을 생성합니다. 추가적인 곡선을 더함으로써, 예를 들어 와류를 추가하거나 흐름 방향을 바꾸는 등 상호작용적으로 유동을 정교하게 다듬을 수 있습니다. 그림 6은 상호작용적인 스케치가 초기 유동을 어떻게 제어하는지 보여줍니다.

우리의 기저는 다양한 곡선에 부드럽게 맞춰질 수 있습니다. 예를 들어, 단순한 원형 흐름에 맞춰지거나, 많은 와류를 생성하고 흐름의 방향이나 강도를 제어할 수 있습니다.

입력 유동을 생성하기 위해, 우리는 각 곡선 $\gamma$를 매개변수 공간에서 균일하게 분포된 $c_i$ 지점에서 샘플링하고, $c_i$에서의 정규화된 접선 벡터를 목표 속도 $t_i = \nabla\gamma(c_i)/\|\nabla\gamma(c_i)\|$로 계산합니다. 이 점들과 속도들의 집합을 사용하여 초기 매개변수 $\alpha$ 집합을 최소제곱법으로 맞춥니다.

Eq.: 초기 계수 피팅$$\alpha_0 = \arg \min_{\alpha} \sum_{i} \left\| \sum_{k=1}^{b} \varphi_k(c_i)\alpha_k - t_i \right\|^2$$이 방정식은 사용자가 스케치한 유선($t_i$)을 가장 잘 표현하는 신경 기저($\varphi_k$)의 최적 가중치($\alpha_0$)를 찾는 최소제곱 문제를 나타냅니다. 즉, 모든 샘플링 지점 $c_i$에서 기저 함수들의 선형 조합으로 만든 속도와 목표 속도 간의 제곱 오차 합을 최소화하는 계수 $\alpha$를 찾는 것입니다.
ENG
0:00 / 0:00
KOR
0:00 / 0:00
3.5 Advection (이류)

그런 다음 $\alpha_0$를 사용하여 초기 속도 $v_0$를 계산하고, 이를 Stam/1999/Stable Fluids, Stam/2023/Real-Time Fluids의 준-내재적 적분기를 사용하여 이류시킵니다. 모든 시간 단계 $t$에 대해, 모든 점에 대해 원점 위치 $p_o = p - v_t(p)dt$를 계산합니다. 여기서 $dt$는 시간 단계이며, 만약 $p_o$가 도메인 밖에 위치하면 가장 가까운 점으로 투영합니다. 적분 방식에 따라, 새로운 속도는 원점 위치에서의 속도로부터 복사됩니다: $\bar{v}_{t+1}(p) = \sum_{k=1}^{b} \phi_k(p_o)\alpha^t_k$.

이 새로운 속도는 우리의 기저 함수로 표현되지 않을 수 있습니다; 따라서 우리는 새로운 $\alpha$를 $\bar{v}_{t+1}(p)$를 우리의 기저 함수에 최소 제곱 피팅하여 계산합니다.

Eq. 8: 기저 함수 공간으로의 속도 투영$$\alpha_{t+1} = \arg\min_{\alpha} \sum_i \left\| \sum_{k=1}^{b} \phi_k(p_i)\alpha_k - \bar{v}_{t+1}(p_i) \right\|^2$$이 수식은 이류된 속도장 $\bar{v}_{t+1}$을 다시 신경망 기저 함수 $\phi_k$의 선형 조합으로 표현하기 위한 최적의 계수 $\alpha_{t+1}$을 찾는 최소 제곱법 문제입니다. 이류 후의 속도장은 기저 함수가 정의하는 공간을 벗어날 수 있으므로, 이 투영 과정을 통해 속도장이 학습된 물리적 속성(예: 비압축성)을 계속 유지하도록 보장합니다.

그리고 이를 사용하여 $v_{t+1} = \sum_{k=1}^{b} \phi_k(p_i)\alpha^{t+1}_k$를 계산합니다.

움직이는 도메인. 우리의 신경망 기저 함수는 임의의 도메인에서 평가될 수 있으므로, 움직이는 경계를 가진 유체 흐름을 자연스럽게 포착할 수 있습니다. 시간 적분기에서, 새로운 속도를 계산한 후, 우리는 $\bar{v}_{t+1}(p)$를 동일한 기저 함수(수식 8)에 투영하는 대신, 다른 도메인에 정의된 새로운 기저 함수 세트에 투영합니다.

쪽집게 과외

알고리즘

flowchart TD classDef core fill:#FFDBE6 classDef idea fill:#E8D2E5 classDef sub fill:#CCEFFF sub_start[t 시점의 속도 v_t, 계수 α_t] --> A[1. 원점 위치 계산
p_o = p - v_t(p)dt]:::core A --> B[2. 원점 속도 복사
v̄_{t+1} 계산]:::core B --> C{도메인 이동했나?} C -- No --> D[3a. 기존 기저함수로
v̄_{t+1} 투영]:::idea C -- Yes --> E[3b. 새 도메인의 기저함수로
v̄_{t+1} 투영]:::idea D --> F[4. 새 계수 α_{t+1} 계산]:::core E --> F F --> G[5. 최종 속도 계산
v_{t+1} = Φα_{t+1}]:::core G --> sub_end[t+1 시점의 속도 v_{t+1}]

핵심 콕콕

• 준-내재적(semi-implicit) 적분기를 사용하여 안정적인 이류(advection)를 수행합니다.
• 각 시간 단계마다, 파티클의 이전 위치를 추적하고 그곳의 속도를 현재 위치로 가져옵니다.
• 이류된 속도장은 학습된 기저 함수 공간을 벗어날 수 있으므로, 최소 제곱법을 사용해 다시 기저 함수 공간으로 '투영'하는 과정이 필수적입니다.
• 움직이는 경계는 매 시간 단계마다 도메인 형상에 맞는 새로운 기저 함수 세트를 생성하고, 그 새로운 기저 함수에 속도장을 투영함으로써 자연스럽게 처리됩니다.

함정 주의

이류된 속도(v-bar)와 최종 속도(v)를 혼동하지 마세요.

- 이류된 속도(v̄_{t+1}): 단순히 파티클의 이전 위치 속도를 그대로 가져온 '날것'의 속도입니다. 이 속도는 신경망 기저 함수가 보장하는 물리적 속성(예: 비압축성, 경계 조건)을 만족하지 않을 수 있습니다.

- 최종 속도(v_{t+1}): 이류된 속도를 다시 신경망 기저 함수 공간으로 투영(projection)하여 얻은 속도입니다. 이 과정을 통해 속도장은 학습된 물리적 제약을 계속 따르게 됩니다. 즉, '날것'의 속도를 기저 함수라는 '틀'에 맞춰 다시 찍어낸 결과물입니다.

구현 힌트

수식 (8)의 최소 제곱법 문제는 선형 시스템을 푸는 것과 같습니다.

Ax = b 형태에서, 행렬 A의 각 열은 샘플링된 모든 점 p_i에서 평가된 하나의 기저 함수 벡터 φ_k(p_i)가 됩니다. 벡터 x는 우리가 찾고자 하는 계수 α_k이고, 벡터 b는 모든 점에서의 이류된 속도 벡터 v̄_{t+1}(p_i)입니다.

이 시스템은 (A^T A)x = A^T b 라는 정규 방정식(normal equation)으로 변환하여 풀 수 있습니다. 본 논문에서 기저 함수들이 직교하도록 학습되었기 때문에, A^T A 행렬은 대각 행렬에 가까워져 시스템이 안정적이고 빠르게 풀립니다.

쉬운 비유

이류 후 속도를 기저 함수로 다시 투영하는 과정f>을 쉽게 비유해볼게요.

- 비유: '12색 색연필 세트로 그림 그리기'

여러분이 12가지 색만 가진 색연필 세트(신경망 기저 함수)로 그림을 그리고 있다고 상상해보세요. 여러분은 이 12가지 색을 섞어서(선형 조합) 다양한 색을 만들 수 있지만, 세상의 모든 색을 완벽하게 표현할 수는 없습니다.

1. '자연의 색 관찰' (이류된 속도 v̄_{t+1} 계산): 창밖의 아름다운 노을을 봤습니다. 이 노을의 오묘한 색(이류된 속도)은 여러분의 12색 색연필 세트에는 없는 색입니다.

2. '가장 비슷한 색 조합 찾기' (최소 제곱법 투영): 여러분은 이 노을 색을 그림에 담고 싶어서, 12가지 색연필을 여러 비율로 섞어보며 노을 색과 '가장 비슷하게' 보이는 색을 만들어냅니다. 이것이 바로 최소 제곱법을 이용한 투영 과정입니다.

3. '그림에 칠하기' (최종 속도 v_{t+1} 계산): 이렇게 만들어낸 '가장 비슷한 색'으로 그림을 칠합니다. 이 색은 원래 노을 색과 완전히 같지는 않지만, 여러분의 12색 색연필(기저 함수)로 표현할 수 있는 최선의 색이며, 그림 전체의 화풍(물리 법칙)을 해치지 않습니다.

셀프 테스트

[O/X] 이류(advection) 단계 직후 계산된 새로운 속도(v̄_{t+1})는 항상 신경망 기저 함수로 완벽하게 표현될 수 있다.

정답 보기

정답: X
해설: 이류된 속도는 기저 함수가 정의하는 공간(subspace)을 벗어날 수 있습니다. 따라서 기저 함수로 다시 투영하는 과정이 필요합니다.

[빈칸] 움직이는 경계를 처리하기 위해, 이류된 속도를 이전 도메인의 기저 함수가 아닌 ___ 도메인에 정의된 새로운 기저 함수 세트에 투영한다.

정답 보기

정답: 다른 (또는 새로운)
해설: 도메인이 움직이면 그에 맞는 새로운 기저 함수가 생성되며, 속도장은 이 새로운 기저 함수 공간에 맞춰져야 합니다.

[서술형] 본 논문의 이류(advection) 과정에서 수식 (8)의 최소 제곱 피팅 단계가 왜 필수적인지 물리적 속성 보존의 관점에서 설명하시오.

정답 보기

모범답안: 이류 과정은 단순히 이전 시간 단계의 속도 값을 현재 위치로 가져오는 것이므로, 이 과정만으로는 신경망 기저 함수가 학습한 물리적 불변량(예: 비압축성을 위한 divergence-free 조건, 경계면을 따르는 slip 조건)이 보존된다는 보장이 없습니다. 이류된 속도장은 기저 함수가 형성하는 유효한 속도 공간을 벗어날 수 있습니다. 따라서 최소 제곱 피팅을 통해 이류된 속도장을 다시 기저 함수 공간으로 투영함으로써, 결과적인 속도장이 학습된 물리적 속성을 계속 만족하도록 강제하는 역할을 합니다. 이는 시뮬레이션의 안정성과 물리적 타당성을 유지하는 데 필수적입니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00

우리는 동일한 기저 (8)에 $\bar{v}_{t+1}(p)$를 투영하는 대신, 다른 도메인에 정의된 새로운 기저 집합에 투영합니다.

4 Results (결과)

우리는 우리의 신경 기저가 어떻게 다른 도메인으로 일반화되는지(섹션 4.1), 훈련 과정에서 다양한 손실 함수가 어떻게 수렴하는지(섹션 4.2), 그리고 다양한 손실 함수가 기저의 동작에 어떻게 기여하는지(섹션 4.3)를 보여줄 것입니다. 마지막으로, 우리의 운동학적 신경 기저를 피팅하고 이를 준-내재적 통합자(semi-implicit integrator)와 통합하여 2차원 및 3차원 애니메이션을 제시합니다(섹션 4.4).

4.1 Generalization (일반화)

쪽집게 과외

핵심 콕콕

• 본 논문의 결과 섹션은 크게 4가지 파트로 구성됩니다.
• 신경 기저의 새로운 도메인에 대한 일반화 성능 평가 (4.1)
• 훈련 중 손실 함수의 수렴 과정 분석 (4.2)
• 각 손실 함수가 기저의 동작에 미치는 영향 분석 (4.3)
• 생성된 2D 및 3D 유체 애니메이션 결과 제시 (4.4)

ENG
0:00 / 0:00
KOR
0:00 / 0:00
4.1 Generalization (일반화 성능)

우리는 훈련 중 사용되지 않은 100개의 무작위 원/구로 구성된 테스트 데이터셋에 대해 우리의 신경망 기저 함수를 평가합니다. 이 원/구의 중심과 반지름은 훈련 데이터와 동일한 분포에서 샘플링되었습니다 (그림 7의 주황색 점선은 훈련 중 다양한 손실 값의 변화를 보여줍니다).

훈련이 끝날 무렵, 우리의 신경망 기저 함수비슷한 손실 값을 보입니다: 길이 손실직교성 손실거의 동일하며, 경계 손실약 20% 정도만 더 큽니다.

쪽집게 과외

핵심 콕콕

• 제안된 신경망 기저 함수는 훈련 때 보지 못한 새로운 데이터(테스트 데이터셋)에 대해서도 잘 작동하는지 평가되었습니다.
• 평가 결과, 테스트 데이터셋에서의 손실 값이 훈련 데이터셋과 거의 비슷하게 나타나, 모델이 특정 데이터에만 과적합되지 않고 우수한 일반화 성능을 보임을 확인했습니다.
• 특히 길이와 직교성 손실은 거의 차이가 없었고, 경계 손실만 약 20% 정도 약간 높게 나타났습니다.

쉬운 비유

일반화 성능f>을 쉽게 비유해볼게요.
- 수학 문제를 푸는 학생에 비유할 수 있습니다.
- 훈련 데이터는 '연습 문제집'이고, 테스트 데이터는 '실제 시험'입니다.
- 연습 문제집만 달달 외운 학생은(과적합) 시험에서 처음 보는 유형의 문제가 나오면 풀지 못합니다.
- 반면, 문제의 원리를 제대로 이해한 학생은(일반화 성공) 시험에 새로운 문제가 나와도 잘 풀어냅니다.
- 이 논문의 모델이 바로 후자의 경우처럼, 처음 보는 도메인(시험 문제)에 대해서도 물리 법칙을 잘 지키는(정답을 맞히는) 좋은 성능을 보였다는 의미입니다.

셀프 테스트

[O/X] 이 모델은 훈련 데이터에 대해서만 좋은 성능을 보였고, 테스트 데이터에서는 성능이 크게 저하되었다.

정답 보기

정답: X
해설: 본문에 따르면 모델은 훈련 데이터셋과 테스트 데이터셋에서 비슷한 손실 값을 보였습니다. 경계 손실이 약 20% 더 높았지만, 이는 큰 성능 저하가 아니며 우수한 일반화 성능을 의미합니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00

기저들은 비슷한 손실 값을 가집니다: 길이 손실직교성은 거의 동일하며, 경계 손실은 약 20% 정도 더 큽니다.

4.2 Convergence (수렴)

전반적으로, 우리의 유체 손실훈련 과정 동안 꾸준히 감소했습니다.

2D와 3D에서, 초기 몇 에포크 이후 small 손실직교성 손실정체 상태가 되는데, 이는 기저들이 개별적으로 0이 아니며 서로 다르다는 것을 나타냅니다 (그림 7).

2D에서는 기저들이 목표 길이에 빠르게 도달하는 반면, 3D에서는 전체 훈련 과정에 걸쳐 천천히 수렴합니다.

2D에서 이후 에포크들이 그 값을 바꾸지 않는다는 점은 흥미로운데, 이는 훈련이 주로 벡터들을 회전시킨다는 것을 나타냅니다.

발산 손실경계 손실은 정체 값에 도달하기까지 더 많은 에포크(10-15)를 필요로 하는데, 이는 이 손실들이 도메인의 모양에 의해 영향을 받는 유일한 것들이기 때문입니다 (그림 7).

예상대로, 평활도 손실은 기저들이 커짐에 따라 초기에 증가한다는 점에 주목합니다.

우리 기저의 타당성을 평가하기 위해, 우리는 훈련(파란색) 및 테스트(빨간색) 세트에서 발산경계 정렬의 분포를 측정합니다 (그림 8).

발산은 두 세트 모두에서 일관되게 작지만(0은 아니며 평균 0.5), 경계 분포는 테스트 세트에서 약간 더 큽니다.

4.3 Ablation Study (애블레이션 연구)

쪽집게 과외

핵심 콕콕

• 전체 유체 손실은 훈련이 진행됨에 따라 꾸준히 감소합니다.
• `small` 및 `orthogonality` 손실은 초기에 빠르게 안정되어, 생성된 기저 함수들이 유효하고 서로 구별됨을 보여줍니다.
• `divergence` 및 `boundary` 손실은 도메인의 기하학적 형태에 직접적인 영향을 받기 때문에 다른 손실들보다 수렴에 더 많은 에포크가 필요합니다.
• 2D 환경에서는 기저가 목표 길이에 빠르게 도달하지만, 3D 환경에서는 수렴 속도가 더 느립니다.
• 훈련 및 테스트 데이터 모두에서 발산(divergence) 값이 일관되게 낮게 유지되어, 모델이 보지 않은 데이터에 대해서도 잘 일반화됨을 알 수 있습니다.

함정 주의

도메인 의존적 손실과 비의존적 손실의 수렴 속도 차이를 혼동하지 마세요.
`orthogonality`(직교성)나 `small`(크기) 손실은 기저 함수들 사이의 내재적 관계에만 의존하므로, 도메인 모양과 무관하게 빠르게 안정됩니다. 반면, `divergence`(발산)나 `boundary`(경계) 손실은 복잡한 도메인 경계 모양에 맞춰져야 하므로, 최적의 값을 찾기 위해 더 많은 훈련 시간이 필요합니다.

쉬운 비유

훈련 손실들의 각기 다른 수렴 속도f>를 쉽게 비유해볼게요.
팀 프로젝트로 로봇을 만드는 것에 비유할 수 있습니다.
- 기본 설계 (빠른 수렴): 로봇의 팔다리가 서로 부딪히지 않게 하고(직교성 손실), 각 부품이 너무 작지 않게 만드는 것(small 손실)은 기본적인 설계 규칙이라 금방 정할 수 있습니다.
- 환경 적응 (느린 수렴): 하지만 로봇이 복잡한 미로(도메인)를 벽에 부딪히지 않고(경계 손실) 통과하게 만드는 것은, 미로의 모든 구석구석을 탐색하고 학습해야 하므로 훨씬 더 많은 시간과 연습이 필요합니다.

셀프 테스트

[O/X] 모든 손실 함수는 훈련 과정에서 동일한 속도로 수렴한다.

정답 보기

정답: X
해설: 본문에서 설명하듯이, `small` 및 `orthogonality` 손실은 빠르게 안정되지만, 도메인 모양에 의존하는 `divergence` 및 `boundary` 손실은 수렴에 더 많은 시간이 걸립니다.

[빈칸] 도메인의 모양에 영향을 받기 때문에 수렴에 더 많은 에포크가 필요한 손실은 ___ 손실과 경계 손실이다.

정답 보기

정답: 발산 (divergence)
해설: 발산과 경계 조건은 도메인의 기하학적 구조에 직접적으로 관련되어 있어, 네트워크가 이를 학습하는 데 더 많은 훈련이 필요합니다.

[서술형] 2D와 3D 훈련에서 '길이 손실(length loss)'의 수렴 속도가 다르게 나타나는 이유는 무엇일까요?

정답 보기

모범답안: 2D에서는 기저가 목표 길이에 빠르게 도달하지만 3D에서는 수렴이 더 느립니다. 이는 3차원 공간이 2차원보다 훨씬 더 복잡하고 높은 자유도를 가지기 때문입니다. 따라서 3D 환경에서 신경망이 안정적인 기저 벡터 길이를 학습하는 데 더 많은 훈련 과정이 필요함을 시사합니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00
4.3 Ablation Study (절제 연구)

우리는 우리 파이프라인의 세 가지 주요 기능의 중요성을 보여줍니다 (그림 9).

Smoothness loss. 이것은 근본적인 물리 법칙에 의해 동기 부여되지 않은 유일한 손실입니다. 우리는 MLP가 (우리의 기저 함수가 반드시 그래야 하는) 부드러운 해를 향하도록 편향시키기 위해 이를 포함시켰습니다. 이를 추가하면 훈련 과정의 신뢰성이 향상됩니다. 실험에서 이것이 없으면 비합리적인 기저 함수를 더 자주 얻었습니다. 그림 9의 두 번째 행 마지막 그림은 smoothness loss 없이는 MLP가 유효한 기저를 생성하지 못한다는 것을 보여줍니다.

Rounded Corners. 우리는 부드러운 해를 생성할 수 있도록 도메인의 모서리를 부드럽게 처리하기로 결정했습니다. 이것이 없으면 훈련이 (불연속성이 있어야 하는) 모서리 주변에서 전환하는 데 실패하고 유동을 도메인 밖으로 밀어내는 기저 함수를 생성합니다.

Number of Samples. 우리는 각 입력 형태에 대해 $10^6$개의 포인트를 샘플링하는데, 이는 물리 기반 비지도 손실이 수렴을 보장하기 위해 충분한 수의 샘플을 요구하기 때문입니다. 샘플 수를 줄이면 종종 수렴이 잘 되지 않고, 모델이 물리적 제약을 위반하며 사소한 기저 함수를 생성하게 됩니다.

4.4 Animations (애니메이션)

우리는 모든 실험을 GeForce RTX 3090에서 실행합니다. 초기 유체를 생성하는 것은 상호작용이 가능하며, 시뮬레이션은 25만 개의 포인트에 대해 초당 40 프레임으로 실행됩니다. 유동을 시각화하기 위해, 우리는 속도장의 크기를 사용하여 물의 변위를 렌더링하고, 입자들이 유동을 따라 움직일 때의 궤적을 보여줍니다. 모든 애니메이션 비디오는 추가 자료를 참조하시기 바랍니다.

쪽집게 과외

핵심 콕콕

• Smoothness loss: 물리 법칙 기반은 아니지만, 훈련 안정성과 유효한 기저 함수 생성을 위해 필수적입니다.
• Rounded Corners: 도메인의 날카로운 모서리를 둥글게 처리해야 불연속성 문제를 피하고 유동이 도메인 밖으로 새어 나가는 것을 막을 수 있습니다.
• Number of Samples: 물리 기반 비지도 학습의 성공적인 수렴을 위해서는 각 형상마다 백만 개 수준의 충분한 샘플링 포인트가 필요합니다.

구현 힌트

물리 기반 비지도 학습(physics-based unsupervised learning)을 구현할 때 다음 세 가지를 꼭 기억하세요.
1. Smoothness loss를 추가하세요. 물리적 근거가 없더라도 훈련 과정을 안정시키고 비정상적인 결과가 나오는 것을 막아주는 중요한 역할을 합니다.
2. 도메인 경계에 날카로운 모서리가 있다면 둥글게 처리(smoothing)하세요. 그렇지 않으면 해당 지점에서 훈련이 실패할 가능성이 높습니다.
3. 샘플링 포인트를 아끼지 마세요. 이 논문처럼 백만 개 단위로 충분히 많이 샘플링해야 손실 함수가 제대로 수렴하고 물리 법칙을 만족하는 결과를 얻을 수 있습니다.

셀프 테스트

[O/X] Smoothness loss는 유체 역학의 근본적인 물리 법칙으로부터 유도된 손실 함수이다.

정답 보기

정답: X
해설: 본문에서 명시적으로 물리 법칙에 기반하지 않았지만, MLP가 부드러운 해를 찾도록 유도하여 훈련 안정성을 높이기 위해 추가되었다고 설명합니다.

[빈칸] 물리 기반 비지도 손실이 수렴을 보장하도록, 각 입력 형태마다 ___개의 포인트를 샘플링했다.

정답 보기

정답: 10^6 (백만)
해설: 충분한 수의 샘플이 없으면 수렴이 잘 되지 않고 물리적 제약을 위반하는 등 문제가 발생할 수 있어, 백만 개의 포인트를 샘플링했습니다.

[서술형] 도메인의 모서리를 둥글게 처리하지 않고 날카롭게 유지했을 때 훈련 과정에서 발생하는 문제점은 무엇인가?

정답 보기

모범답안: 훈련이 모서리 주변의 불연속성을 제대로 처리하지 못하고 전환에 실패하게 됩니다. 결과적으로 생성된 기저 함수가 유동을 도메인 밖으로 밀어내는 비정상적인 현상이 발생할 수 있습니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00
4.4 Animations (애니메이션)

모든 실험은 GeForce RTX 3090에서 실행했습니다. 초기 유체를 생성하는 과정은 상호작용적이며, 시뮬레이션은 25만 개의 포인트에 대해 초당 40 프레임으로 실행됩니다. 흐름을 시각화하기 위해, 속도장의 크기를 사용하여 물의 변위를 렌더링하고 흐름을 따라 움직이는 입자 궤적을 보여줍니다. 모든 애니메이션 영상은 추가 자료를 참조하시기 바랍니다.

2차원 편집. 그림 10은 입력 스케치가 어떻게 사실적인 유체 시뮬레이션으로 이어지는지 보여줍니다. 입력 흐름이 잔잔하다면, 시뮬레이션은 차분한 정상 상태 속도로 수렴합니다. 더 많은 와류로 시작하면, 흐름은 나중 프레임에서도 난류 상태를 유지합니다.

움직이는 경계. 우리 방법은 단일 구성 요소 및 분리된 구성 요소의 평행 이동과 회전, 심지어 도메인 위상의 변화를 포함하는 다양한 예시에서 보여주듯이, 움직이는 경계를 자연스럽게 수용합니다. 이러한 애니메이션들은 그러한 동역학으로 인해 얼마나 흥미로운 유체 거동이 나타나는지를 보여줍니다. 우리 방법의 움직이는 경계를 처리하는 능력게임 엔진에 통합하기에 매우 적합합니다. 이 방법은 캐릭터가 물과 상호작용할 때(예: 걷거나 물속을 헤쳐 나갈 때) 물리적으로 사실적인 유체 흐름을 실시간으로 생성하여 사용자 경험을 풍부하게 할 수 있습니다.

고정된 바위 주위를 오리가 움직이는 그림 1 하단은, 우리의 시간에 따라 변하는 기저 함수(그림 11 상단)를 사용하여 여러 개의 분리된 구성 요소를 가진 움직이는 경계의 예를 보여줍니다. 다른 각도에서(그림 11 하단) 우리는 오리가 다른 모서리로 밀고 들어감에 따라 기존의 와류가 압축되고 결국 소멸되는 것을 보여줍니다.

먼저 다른 속도로 회전하는 팬의 효과를 설명합니다(그림 12). 팬이 빠르게 회전할 때, 입자들은 날개 영역에서 밀려나 효과적으로 진입이 방지됩니다. 반대로, 더 느린 회전에서는 입자들이 날개 근처에 접근하여 순환할 수 있습니다.

그림 13은 그리퍼가 열리고 닫히면서 도메인의 지너스(genus)를 변경하는 것을 보여줍니다. 닫히는 동작 동안에는 내향 및 외향 흐름이 모두 나타나며, 일부 입자는 그리퍼 안으로 운반되고 다른 입자는 밖으로 밀려납니다. 그리퍼가 완전히 닫히면, 흐름은 그 주위를 순환하며 루프를 형성하고 그리퍼 내부의 입자들은 갇히게 됩니다. 그리퍼가 다시 열리면, 흐름 패턴이 반전되어 갇혔던 입자들이 방출되고 주변 흐름에 의해 새로운 입자들이 유입됩니다.

3차원. 우리의 모든 방법은 3차원으로 일반화될 수 있습니다. 이제 도메인은 10개의 구와 그 반지름(30개 대신 40개의 매개변수)으로 표현됩니다; MLP 네트워크는 3D 포인트를 입력받아 부피 벡터 필드를 생성합니다(그림 1 상단은 팬에 대한 일부 기저 함수를 보여줍니다). 그림 1 중간은 흐름이 날개 주위를 움직이는 움직이는 3D 팬의 애니메이션을 보여주고, 그림 14는 정적 경계를 가진 애니메이션을 보여줍니다. 두 그림 모두 속도장에 의해 이류(advected)되는 구형 소스(다른 색상)로부터의 입자 궤적을 보여줍니다.

쪽집게 과외

핵심 콕콕

• GeForce RTX 3090에서 25만개 입자 기준 초당 40 프레임의 실시간 시뮬레이션 성능을 보입니다.
• 사용자가 스케치를 통해 초기 유체 흐름을 상호작용적으로 디자인하고 수정할 수 있습니다.
• 평행 이동, 회전, 심지어 위상 변화까지 포함하는 움직이는 경계를 자연스럽게 처리합니다.
• 제안된 방법은 2차원뿐만 아니라 3차원 시뮬레이션으로도 쉽게 확장 가능합니다.

구현 힌트

GeForce RTX 3090 GPU 환경에서 25만 개의 입자를 초당 40 프레임으로 시뮬레이션하는 성능을 목표로 설정할 수 있습니다. 초기 유체 흐름을 생성하는 과정은 사용자가 실시간으로 피드백을 받으며 작업할 수 있도록 상호작용이 가능해야 합니다.

셀프 테스트

[O/X] 이 논문에서 제안한 방법은 정적인 경계 조건에서만 작동하며, 움직이는 장애물은 처리할 수 없습니다.

정답 보기

정답: X
해설: 본문에서는 오리, 팬, 그리퍼 예시를 통해 움직이는 경계를 자연스럽게 처리할 수 있음을 명확히 보여주고 있습니다. 이는 이 방법의 핵심 장점 중 하나입니다.

[빈칸] 제안된 방법은 2D 시뮬레이션뿐만 아니라 ___ 시뮬레이션으로도 일반화될 수 있습니다.

정답 보기

정답: 3D (또는 3차원)
해설: 본문 마지막 단락에서 모든 방법이 3차원으로 일반화될 수 있으며, 도메인 표현과 MLP 네트워크가 3D에 맞게 조정된다고 설명합니다.

[서술형] 본 논문의 방법이 게임 엔진에 통합되기에 적합한 이유는 무엇이며, 이를 통해 사용자 경험을 어떻게 향상시킬 수 있는지 설명하시오.

정답 보기

모범답안: 이 방법은 초당 40 프레임의 실시간 성능을 보여주고, 캐릭터의 움직임과 같은 동적인 경계를 자연스럽게 처리할 수 있기 때문에 게임 엔진에 적합합니다. 이를 통해 플레이어 캐릭터가 물 속을 걷거나 상호작용할 때, 물리적으로 사실적인 유체 흐름이 실시간으로 생성되어 게임의 몰입감과 현실감을 크게 높여 사용자 경험을 풍부하게 만들 수 있습니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00
5 Conclusions (결론)

본 논문에서는 MLP로 표현되는 새로운 신경 운동학 기저(neural kinematic base)를 소개합니다. 이 기저는 근본적인 물리적 특성을 포착하고 다양한 도메인으로 일반화됩니다. 우리는 이 기저와 표준 이류 적분기를 사용하여 움직이는 장애물이 있는 2차원 및 3차원 애니메이션을 생성할 수 있음을 보여줍니다.

합리적인 학습 시간을 유지하기 위해, 우리는 단 10개의 기저만을 사용하기로 결정했지만, 저희 방법은 더 많은 기저를 생성할 수 있어야 합니다. 추가적으로, 도메인을 캡슐의 집합으로 표현하여 더 상세한 도메인 기하학을 허용할 수도 있습니다.

저희 방법은 디리클레(Dirichlet) 경계 조건을 강제하여 기저를 도메인 경계에 정렬시킵니다. 이를 노이만(Neumann) 조건과 같은 다른 유형을 지원하도록 확장하려면 경계 제약 조건을 지정하고 혼합하기 위한 추가적인 메커니즘이 필요할 것입니다. 저희 기저는 본질적으로 매끄러워서 매끄러운 유체 애니메이션과 경계 기하학을 생성하지만, 매끄럽지 않은 경계에는 적용 가능성이 제한됩니다. 더욱이, 디리클레 조건은 장애물에 수직인 속도를 지정하는 것을 막기 때문에, 장애물이 유체를 능동적으로 밀어낼 수 없어 준정적(quasi-static) 거동을 초래합니다. 우리는 이러한 현상들이 흥미롭다고 생각하며, 이에 대한 연구를 향후 과제로 남겨둡니다.

마지막으로, 저희 기저는 MLP로 인코딩되므로 완전하게 미분 가능합니다. 예를 들어, 역설계(Inverse design)는 향후 연구를 위한 흥미로운 길이 될 수 있습니다. 예를 들어, 주어진 애니메이션과 일치하도록 원의 위치를 최적화하는 것을 포함할 수 있습니다.

Acknowledgments (감사의 글)

컴퓨터 애니메이션에 관한 Bellairs 워크숍은 본 논문에 제시된 연구의 구상에 중요한 역할을 했습니다. 이 연구는 NSERC 보조금 DGECR-2021-00461, RG-PIN 2021-03707, RGPIN-2024-04523, RGPIN-2024-04605, FRQNT 365040Adobe Research의 기부금에 의해 부분적으로 지원되었습니다. 또한 이 연구는 캐나다 디지털 연구 연합(Digital Research Alliance of Canada)의 자원, 서비스 및 직원 전문성을 통해 부분적으로 지원받았습니다.

쪽집게 과외

핵심 콕콕

• 핵심 기여: MLP 기반의 '신경 운동학 기저'를 제안하여, 물리 법칙을 따르면서 다양한 도메인에 일반화되는 유체 애니메이션을 생성합니다.
• 주요 한계점: 현재는 디리클레 경계 조건만 지원하여 장애물이 유체를 능동적으로 밀어내는 상호작용이 어렵고, 매끄러운 경계에만 적용 가능합니다.
• 향후 연구 방향: 기저가 완전 미분 가능하다는 장점을 활용하여, 목표 애니메이션에 맞춰 도메인을 최적화하는 '역설계'와 같은 확장을 제안합니다.

함정 주의

디리클레(Dirichlet) 경계 조건과 노이만(Neumann) 경계 조건을 혼동하지 마세요.
이 논문에서 사용된 디리클레 조건은 유체가 경계에서 특정 속도(여기서는 0)를 갖도록 강제하여 유체가 경계를 '뚫고 나가지 못하게' 합니다. 이는 장애물이 유체를 '밀어내는' 효과를 만들지는 못합니다. 반면, 노이만 조건은 경계에서의 속도 변화율(가속도) 등을 제어하여 유체가 경계로부터 힘을 받는 효과를 시뮬레이션할 수 있습니다.

쉬운 비유

신경 운동학 기저f>를 쉽게 비유해볼게요.
- 똑똑한 '유체 춤 안무가' 팀: 이 안무가들(신경망 기저)은 '물은 벽을 통과하지 못한다' 같은 기본 물리 법칙을 이미 배우고 있어요. 어떤 모양의 무대(도메인)를 주든, 이 안무가들은 그 무대에 맞춰 즉시 물리적으로 그럴듯한 춤(유체 흐름)을 만들어낼 수 있죠.
- 한계점 (디리클레 조건): 하지만 이 안무가들은 무대 벽에 딱 붙어서 미끄러지기만 할 뿐, 벽을 밀어서 움직이게 할 수는 없어요. 그래서 무대 자체가 움직일 수는 있지만, 춤추는 물이 벽을 밀어내는 역동적인 상호작용은 표현하기 어렵습니다.

셀프 테스트

[O/X] 이 논문에서 제안한 신경 운동학 기저는 별도의 정답 데이터 없이 물리 법칙 기반 손실 함수만으로 비지도 학습된다.

정답 보기

정답: O
해설: 본문에서는 ground-truth 데이터 없이 근본적인 물리적 특성에만 의존하여 비지도(unsupervised) 방식으로 학습한다고 명시하고 있습니다.

[빈칸] 현재 모델은 유체가 경계에서 미끄러지도록 하는 ___ 경계 조건을 사용하지만, 장애물이 유체를 능동적으로 밀어내는 효과를 내기 위해서는 향후 노이만(Neumann) 조건 같은 다른 유형의 지원이 필요하다.

정답 보기

정답: 디리클레(Dirichlet)
해설: 논문에서는 디리클레 경계 조건을 강제하며, 이로 인해 장애물이 유체를 능동적으로 밀 수 없는 준정적 거동이 나타난다고 한계점을 설명합니다.

[서술형] 본 논문의 기저(bases)가 '완전 미분 가능'하다는 특성이 왜 중요하며, 이를 활용한 향후 연구 방향은 무엇인지 설명하시오.

정답 보기

모범답안: 기저가 MLP로 인코딩되어 완전 미분 가능하다는 것은 그래디언트 기반 최적화가 가능하다는 의미입니다. 이를 활용해 '역설계(inverse design)'를 수행할 수 있는데, 예를 들어 목표 유체 애니메이션이 주어졌을 때, 그 애니메이션을 가장 잘 만들어내는 도메인(원의 위치 등)을 역으로 찾아내는 최적화 문제를 풀 수 있습니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00
Figures And Tables

Fig 1: 우리는 신경 기저 운동학(상단)을 사용하여 변화하는 도메인에 피팅하고, 이를 표준 반-암시적 이류(중간)를 통해 실시간으로 시뮬레이션합니다. 동일한 구조가 2차원에도 적용되어 유체를 실시간으로 시뮬레이션할 수 있습니다(하단). 우리는 메시 없는 유체 시뮬레이션을 제안하며, 이는 MLP로 표현되는 속도장을 위한 운동학적 신경 기저를 활용합니다. 우리는 이러한 신경 기저가 직교성, 발산 없음, 경계 정렬, 평활성과 같은 기본적인 물리적 속성을 근사하도록 보장하는 손실 함수 세트를 설계합니다. 우리의 신경 기저는 입력된 흐름 스케치에 피팅될 수 있으며, 이 흐름은 기저로부터 동일한 기본 속성을 상속받습니다. 그런 다음 표준 시간 적분기를 사용하여 이러한 흐름을 실시간으로 애니메이션화할 수 있습니다. 우리의 신경 기저는 다양한 도메인, 움직이는 경계를 수용할 수 있으며 자연스럽게 3차원으로 확장됩니다.

Fig 2: 우리의 MLP 네트워크에 의해 생성된 신경 기저 함수의 예시입니다. 이 함수들이 경계와 평행하고, 0이 아니며, 부드럽다는 것을 명확히 볼 수 있습니다.

Fig 3: 우리 방법의 파이프라인 개요입니다. 스케치와 유체 기저를 생성하는 사전 훈련된 MLP로 시작합니다. 이 기저를 입력 스케치에 피팅한 다음, 이를 이류시켜 애니메이션을 생성합니다.

Fig 4: 경계 표시 함수 𝑤𝑏(왼쪽)와 도메인 마스크 𝑤(오른쪽)입니다.

Fig 5: 우리의 MLP 아키텍처 개요입니다. 입력으로 한 점 𝑝와 원들의 매개변수 집합 𝜌를 받아 우리의 신경 기저 𝜑𝑖 (𝑖= 1, . . . ,𝑏)를 생성합니다.

Fig 6: 유체 흐름을 디자인하기 위해 가능한 다양한 상호작용의 예시입니다. 초기 디자인부터 여러 종류의 편집 과정을 보여줍니다.

Fig 7: 훈련 세트(파란색)와 테스트 세트(주황색)에 걸쳐 에포크 수에 따른 손실의 수렴 과정입니다.

Fig 8: 훈련 세트(파란색)와 테스트 세트(빨간색)에 대한 발산 손실경계 손실의 밀도 플롯입니다. 𝑥축은 손실 값을, 𝑦축은 확률 밀도를 나타냅니다.

Fig 9: 우리 파이프라인의 다른 부분들을 생략하여 생성된 기저들입니다. 각 생략은 다른 아티팩트를 초래합니다.

Fig 10: 다양한 입력 스케치에 대한 여러 유체 애니메이션 프레임의 예시입니다. 흐름은 원과 곡선의 위치에 적응하여 자연스러운 애니메이션을 생성합니다. 상단 애니메이션은 잔잔한 유체 표면을 묘사하는 반면, 하단은 여러 개의 소용돌이가 있는 난류 장면을 보여줍니다.

Fig 11: 고무 오리가 고정된 바위 주위를 움직입니다(하단). 오리가 아래쪽과 왼쪽 모서리로 밀면서 해당 지역의 소용돌이들이 압축되고 오리의 움직임과의 상호작용으로 인해 점차 사라집니다. 상단은 프레임 0에 대한 기저를 보여줍니다. 우리 방법은 디리클레 경계 조건을 강제하여 기저를 도메인 경계에 정렬시킵니다. 노이만 조건과 같은 다른 유형을 지원하도록 확장하려면 경계 제약 조건을 지정하고 혼합하기 위한 추가적인 메커니즘이 필요할 것입니다. 우리 기저는 본질적으로 부드러워서 부드러운 유체 애니메이션과 경계 지오메트리를 생성하지만, 부드럽지 않은 경계에는 적용 가능성이 제한됩니다. 더욱이, 디리클레 조건은 장애물에 수직인 속도를 규정하는 것을 막기 때문에, 장애물이 유체를 능동적으로 밀 수 없어 준정적(quasi-static) 거동을 초래합니다. 우리는 이러한 현상들이 흥미롭다고 생각하며, 이에 대한 조사를 향후 연구 과제로 남겨둡니다. 마지막으로, 우리 기저는 MLP로 인코딩되어 있기 때문에 완전히 미분 가능합니다. 예를 들어, 역설계는 향후 연구를 위한 흥미로운 방향이 될 수 있습니다. 예를 들어, 주어진 애니메이션과 일치하도록 원의 위치를 최적화하는 것을 포함할 수 있습니다.

Fig 12: 우리의 신경 기저 운동학을 사용한 2차원 유체 애니메이션입니다. 배경에는 속도의 크기를 높이 필드로 시각화하고, 움직임을 더 잘 보여주기 위해 입자들을 이류시킵니다.

Fig 13: 도메인의 위상적 특성(genus)이 변하는 유체 애니메이션의 예시입니다. 공동(cavity)이 나타나면 흐름이 "갇히게" 됩니다. 그리고 공동이 열리면서 흐름이 방출됩니다.

Fig 14: 고정된 장애물이 있는 환경에서 우리의 신경 기저 운동학을 사용한 3차원 유체 애니메이션입니다. 두 개의 구형 소스에서 나온 입자들의 궤적을 속도장에 의해 이류시켜 보여줍니다.

Comments