• Stars
    star
    490
  • Rank 86,475 (Top 2 %)
  • Language
    Python
  • Created almost 4 years ago
  • Updated 10 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Advanced Physics Engines 2020: A Hands-on Tutorial

GAMES201线上课程:高级物理引擎实战指南2020

最新课程主页https://yuanming.taichi.graphics/teaching/2020-games201/ (本页面不再更新)

课件下载(讲义与代码)https://forum.taichi.graphics/t/topic/272

课程回放地址https://www.bilibili.com/video/BV1ZK411H7Hc

课程直播地址: http://webinar.games-cn.org (直播结束后Bilibili有回放,请点上一个链接)

建议前置课程: 高等数学、Python或任何一门程序设计语言

课程安排: 共10节课,每周一次。2020年6月1日开始,时间为北京时间晚上8:30-10:00。

课程作业: 课程共有三个开放项目。自愿完成。开放项目可以1-3人组队。

开放项目以同学们自由发挥为主,同学们可以自己将代码分享到 https://forum.taichi.graphics/ 论坛进行讨论,互相切磋。每次我们会选择有代表性的几个项目会在下次上课展示、点评。课程最后会进行最终点评、线上颁奖。

课程大纲(暂定)

第一讲,6月1日 导论

  • 基于物理的动画简介
  • Taichi(太极)编程语言简介
  • 课程与作业安排

(开放作业0:编写你自己的任意Taichi程序)

第二讲,6月8日 拉格朗日视角(1)

  • 弹簧质点系统(Mass-spring systems):你的第一个物理模拟器
  • 显式与隐式时间积分器(Explicit/implicit time integrators)
  • 光滑粒子流体动力学(Smoothed particle hydrodynamics)
  • 快速邻居搜索(Neighborhood search)

第三讲,6月15日 拉格朗日视角(2)

  • 基于四面体网格(tetrahedral mesh)的拉格朗日有限元模拟
  • 隐式有限元求解器(Implicit FEM solvers)
  • 边界条件处理
  • Taichi编程语言高级特性

(开放作业1:实现任意隐式积分器: implicit mass-spring/FEM, PCI-SPH, MPS, ..., 并进行显式时间积分器器与隐式时间积分器器对比)

第四讲,6月22日 欧拉视角

  • 稳定流体与半拉格朗日输送(Stable fluids and Semi-Lagrangian advection)
  • Chorin式压力投影(Chorin-Style projection)
  • Staggered网格与零空间(nullspaces)
  • Krylov子空间求解器(Krylov-subspace solvers)与共轭梯度法 (Conjugate gradients)
  • 用无矩阵(Matrix-free)Krylov子空间方法求解泊松方程(Poisson equations)
  • 预条件(Preconditioning)
  • 几何与代数多重网格方法(multigrid methods)

第五讲,6月29日 多体问题与涡方法

客座讲师: 张心欣

  • 多体问题以及他们与柏松方程的联系
  • 涡方法的乐趣
  • 从直观的角度引导同学认识几种不同的快速求和方法

7月6日,空一周,实现开放作业1

7月11日,开放作业1截止,点评

Homework 2 (最终作业)

  • 实现一个可交互的物理模拟器(2D),或⽤⾼质量渲染可视化模拟结果(3D),或进⾏性能优化
  • 可以基于⾃己的或别人的Homework 1

第六讲,7月13日 线性弹性有限元与拓扑优化

  • 弱形式(weak form)与有限元理论入门
  • 基于六面体网格(hexahedral grid)的拉格朗日有限元模拟
  • 拓扑优化(Topology optimization)

第七讲,7月20日 混合欧拉-拉格朗日视角(1)

  • 粒子-网格传输(Particle-grid transfers)
  • 粒子元胞法(Particle-in-Cell, PIC)
  • 流体隐粒子(Fluid Implicit Particles, FLIP)
  • 仿射粒子元胞法(Affine Particle-in-Cell, APIC)与多项式粒子元胞法(Polynomial Particle-in-Cell, PolyPIC)
  • 用FLIP与APIC进行流体模拟
  • 物质点法(Material Point Method, MPM)基础

第八讲,7月27日 混合欧拉-拉格朗日视角(2)

  • 移动最小二乘物质点法(Moving Least Squares MPM, MLS-MPM)
  • 本构模型(Constitutive models)
  • 塑性 (Plasticity)
  • 物质点法中的拉格朗日力(Lagrangian forces in MPM)

第九讲,8月3日 高性能计算与物理引擎

  • 现代处理器微结构(processor microarchitectures)
  • 内存层级(memory hierarchy)
  • 性能调优
  • Taichi中的高级数据布局
  • Taichi中的稀疏数据结构

8月10日空一次,大家完善自己的物理引擎(开放作业2)。

8月15日开放作业2 deadline。

第十讲,8月17日 总结

  • 课程回顾
  • 引擎项目最终点评、评奖
  • 基于物理的动画中的未解难题

助教团队

未来课程的顺利进行,离不开助教同学们的鼎力相助。理论组助教负责在论坛答疑、筛选优秀编程作业:

夏一鸣
史雨宸
袁宇杰

技术组助教主要负责与课程相关的Taichi开发与维护:

杨玄达
翟骁
曹亚帝
禹鹏
冯旭东

More Repositories

1

taichi

Productive, portable, and performant GPU programming in Python.
C++
24,605
star
2

difftaichi

10 differentiable physical simulators built with Taichi differentiable programming (DiffTaichi, ICLR 2020)
2,378
star
3

taichi-nerfs

Implementations of NeRF variants based on Taichi + PyTorch
Python
687
star
4

taichi_elements

High-performance multi-material continuum physics engine in Taichi
Python
454
star
5

awesome-taichi

A curated list of awesome Taichi applications, courses, demos and features.
322
star
6

taichi_three

A soft renderer based on Taichi (work in progress)
Python
216
star
7

voxel-challenge

Python
210
star
8

meshtaichi

MeshTaichi: A Compiler for Efficient Mesh-based Operations (SIGGRAPH Asia 2022)
Python
201
star
9

taichi_blend

Taichi Blender intergration for physics simulation and animation
Python
152
star
10

quantaichi

QuanTaichi evaluation suite
Python
134
star
11

taichi-docs-zh-cn

Taichi中文文档
127
star
12

taichi_houdini

Python
101
star
13

faster-python-with-taichi

Python
76
star
14

taichicon

TaichiCon: Taichi Conferences
71
star
15

taichi_glsl

A Taichi extension library providing a set of GLSL-alike helper functions
Python
68
star
16

taichi-aot-demo

A demo illustrating how to use Taichi as an AOT shader compiler
C++
67
star
17

taichi.js

Run compiled Taichi kernels in JavaScript and WASM
Python
63
star
18

image-processing-with-taichi

Python
52
star
19

soft2d-release

Soft2D: A 2D multi-material continuum physics engine designed for real-time applications.
C++
48
star
20

Taichi-UnityExample

C#
46
star
21

cpp-training-season1

C++ training, season 1
C++
45
star
22

taichi_benchmark

Python
25
star
23

cheatsheet

TeX
24
star
24

taichi_dem

A minimal DEM simulation demo written in Taichi.
Python
24
star
25

docs.taichi.graphics

Home of the Taichi documentation site.
HTML
23
star
26

taichi-unity2

C++
20
star
27

cloth-simulation-homework

Python
16
star
28

community

13
star
29

advanced_examples

More advanced Taichi examples
Python
10
star
30

soft2d-for-unity

Soft2D-for-Unity
C#
10
star
31

poisson-sampling-homework

Python
9
star
32

sourceinspect

A unified inspector for retriving source from Python objects
Python
8
star
33

mls_mpm_88_extensions

Python
6
star
34

test_actions

C++
5
star
35

taichi_elements_blender_examples

5
star
36

public_files

5
star
37

dummy-rdp-client

Keep a live session by RDP, so OpenGL can function.
Rust
4
star
38

docstring-gen

Workflow for generating the docstring website
Python
4
star
39

mpm_3d_exercise

Python
4
star
40

stock_trading_strategy

Optimal stock trading strategy using Taichi
Python
3
star
41

taitopia-status-page

Taitopia status page
Markdown
3
star
42

taichi_assets

Taichi binary assets (submodule of the main Taichi repository)
3
star
43

taichi-release-tests

Python
2
star
44

blogs

Python
2
star
45

taichi-zoo-issue-tracker

This repository is used for collecting user feedback from the community
1
star
46

hackathons

Taichi ❤️ Hackathons
1
star
47

taichi_glad_ready

Ready to use GLAD as a OpenGL API loader
C
1
star