NVIDIA Flex Solver COMP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】

※当サイトにはプロモーションリンクが含まれます。

NVIDIA Flex Solver COMP の機能を示す図

記事更新の通知はXでアナウンス٩(๑❛ᴗ❛๑)
@maru6o6をフォロー

概要 📖 – 粒子と流体の動きを計算する

NVIDIA Flex Solver COMPは、NVIDIA Flex Actor COMP 群を子として粒子ベースの統合シミュレーション (流体・布・ロープ・剛体) を駆動し、Substeps と Iterations で衝突・粘性・表面張力を解いて粒子位置を更新する物理ソルバ COMPです。NVIDIA Flex Actor COMP を子として配置し、Particle Radius や Viscosity / Surface Tension を設定することで、CUDA GPU 上のリアルタイム粒子シミュレーション (水流・布のはためき・粘性流体など) を構築できます。

主な用途 🎯

  • NVIDIA Flex Actor COMP 群を子に持ち、粒子ベースの統合シミュレーション (流体・布・ロープ・剛体) を駆動するソルバコンポーネント
  • Gravity / Sample Rate / Substeps / Iterations によるシミュレーション空間・タイムステップ・収束精度の制御
  • Particle Radius / Restitution / Adhesion / Friction 等の粒子物性パラメータでマテリアル挙動を一括設定
  • Cohesion / Surface Tension / Viscosity / Buoyancy による流体特性 (粘性・表面張力・浮力) のチューニング
  • Enable Diffuse Particles で水しぶき・泡・霧などのディフューズ粒子を追加生成し、Nvidia Flex TOP 経由で位置・速度を取得可能

データフロー 🔄

入力: NVIDIA Flex Actor COMP 群 + Force COMP + Boundaries + 粒子物性 (Radius / Friction / Viscosity 等)

Flex 粒子ソルバが Substeps × Iterations で 1 frame ステップ

出力: 子 Actor COMP の粒子位置更新 + Nvidia Flex TOP 経由で粒子データ取得

Tips

初心者の方は、以下日本語書籍も手元にあると安心です。

まる。
まる。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!


パラメータ解説 ⚙️

Solver Page 📁

Actors / Forces 🧩

シミュレーション対象 Actor とグローバル外力 Force COMP の指定:

  • Actors: actors — シミュレーションに含める NVIDIA Flex Actor COMP のリスト。既に他の Flex Solver COMP に登録されている Actor は指定不可
  • Global Forces: forces — シミュレーション全体に作用するグローバル Force COMP のリスト (Flex でサポートされるのは 力場 (force field) のみ — 他種の Force は無視される)

Gravity 🌍

全アクター共通のグローバル重力:

  • Gravitational Acceleration: gravity (gravityx, gravityy, gravityz) — シミュレーション全体に適用される重力加速度 (m/s²)。質量に依らず全アクターに適用される (地球重力なら Y 軸 -9.8)

Initialize / Start / Play ▶️

リセット・開始・一時停止の制御パラメータ:

  • Initialize Sim: init — 全 body を初期状態 (位置・姿勢・速度) に戻すパルス。初期化のみ行い、ステップ実行はしない
  • Start Sim: start — 初期化してシミュレーションを開始 (ステップ実行) するパルス
  • Play: play — オンの場合、シミュレーションをステップ実行 (再生)。オフで一時停止
  • Always Simulate: alwayssim — オンの場合、毎フレーム必ずシミュレーションをステップ実行する

Sample Rate / Substeps / Iterations ⏱️

Sample Rate / Substeps / Iterations:

  • Sample Rate: rate — シミュレーションのサンプルレート。timestep は 1/rate となる
  • Number of Substeps: substeps — 1 ステップ中に実行するサブステップ数。値を上げると物理計算は精密になるが負荷が増える
  • Number of Iterations: iterations — 各サブステップ内での反復回数。拘束の収束精度に影響

Pre-Roll ⏮️

シミュレーション開始前の事前ステップ実行設定:

  • Pre-Roll: preroll — Pre-Roll を有効化。初期化フェーズ中にシミュレーションを事前に時間進める。Pre-Roll 状態は Solver の Info CHOP のチャンネルで確認可能
  • Pre-Roll Simulation Time (Sec): prerolltime — 開始前に進めるシミュレーション時間 (秒)
  • Pre-Roll Steps per Frame: prerollstep — Pre-Roll 中に 1 TouchDesigner フレームあたり何ステップ進めるか。例: Pre-Roll 時間 1 秒 + Steps per Frame 2 なら 0.5 秒で Pre-Roll 完了
  • Show Pre-Roll: showpreroll — オンの場合、Pre-Roll の結果が Actor COMP に反映される (transform が更新される)。オフの場合、Pre-Roll 完了まで Actor は初期状態のまま表示される

Boundaries 🚧

境界 (Bounding Box / Plane) 設定:

  • Enable Boundaries: bounds — シミュレーション境界を有効化。Bounding Box または個別 Plane で粒子が逃げ出すのを防ぐ
  • Bounding Box SOP: bbox — バウンディングボックスの計算に使う SOP のパス
  • Plane (Sequence): plane — ソルバに追加する境界平面のシーケンスパラメータ
  • Rotation (Plane): plane0r (plane0rx, plane0ry, plane0rz) — デフォルト平面 (+Z 法線の XY 平面、Grid SOP と同方向) を回転
  • Translation (Plane): plane0t (plane0tx, plane0ty, plane0tz) — デフォルト平面を平行移動

Boundary Mode .boundmode 🎛️

境界の定義方法を選択するメニューパラメータ

項目 内部名 説明
Bounding Box SOP .bbox 下で指定する Bounding Box SOP の境界を使用
Planes .planes 下で指定する個別 Plane (シーケンス) の境界を使用

Properties Page ⚙️

Particle Radius 🔵

シーン全体で共通のパーティクル半径:

  • Particle Radius: radius — シミュレーション内の粒子半径。シーン内の全 Actor で共通

Friction / Restitution / Adhesion 🪨

粒子と形状の摩擦・反発・粘着:

  • Dynamic Friction: dfriction — 動いている粒子と静止形状との摩擦力
  • Static Friction: sfriction — 静止している粒子と静止形状との摩擦力
  • Particle Friction: pfriction — 粒子同士の動的摩擦
  • Restitution: rest — 粒子の反発係数 (0 で無反発、1 で完全弾性)
  • Adhesion: adhesion — 粒子が衝突した形状にどれだけ強く貼り付くかの係数

Sleep / Clamp 💤

Sleep 閾値と速度・加速度クランプ設定:

  • Sleep Threshold: sleepthresh — この閾値より速度が小さい粒子は非アクティブ (sleep) とみなされる
  • Clamp Speed: clampspeed — 速度クランプを有効化
  • Max Speed: maxspeed — 粒子速度の大きさがクランプされる上限値
  • Clamp Acceleration: clampaccel — 加速度クランプを有効化
  • Max Acceleration: maxaccel — 粒子加速度の大きさがクランプされる上限値

Dissipation / Damping 🌬️

エネルギー散逸 / 粘性抗力:

  • Dissipation: diss — 接触数に応じて粒子速度を減衰させる係数
  • Damping: damping — 粒子速度に比例した逆方向の粘性抗力

Fluid Properties 💧

流体特性 (Cohesion / Surface Tension / Viscosity / Buoyancy):

  • Cohesion: cohesion — 粒子同士の引き合う強さ (流体の凝集性)
  • Surface Tension: surftension — 流体粒子が表面積を最小化しようとする強さ (表面張力)
  • Viscosity: viscosity — XSPH 粘性による粒子速度の平滑化
  • Buoyancy: buoyancy — 流体粒子に対する重力スケール (浮力)

Collision Distance / Margin 📐

衝突判定距離とマージン:

  • Collision Distance: colldist — 粒子が形状と衝突するときに維持する距離
  • Shape Collision Margin: scollmargin — 形状に対する接触判定中の粒子半径の拡張量

Rendering Helpers 🎨

レンダリング用の平滑化・渦度・異方性:

  • Smoothing: smoothing — レンダリング用に粒子に適用される Laplacian 平滑化の強さ
  • Vorticity Confinement: vortconf — 粒子に回転力を加えて渦度を増加させる係数
  • Anisotropy Scale: anisoscale — レンダリング時の楕円体異方性 (Anisotropy) の強さ
  • Anisotropy Min: anisomin — Anisotropy Scale を粒子半径のこの倍率以下にクランプ (下限)
  • Anisotropy Max: anisomax — Anisotropy Scale を粒子半径のこの倍率以下にクランプ (上限)

Diffuse Particles 💨

ディフューズ粒子 (水しぶき・泡・霧) の生成・挙動設定:

  • Enable Diffuse Particles: diffuse — ディフューズ粒子の生成を有効化。粒子位置・速度は Nvidia Flex TOP で取得可能
  • Max Diffuse Particles: maxdiffuse — シミュレーション内に同時に存在できるディフューズ粒子の最大数
  • Diffuse Threshold: diffthresh — 運動エネルギー + 発散がこの閾値を超えた粒子から新規ディフューズ粒子を生成
  • Diffuse Buoyancy: diffbuoy — ディフューズ粒子に対する重力スケール
  • Diffuse Drag: diffdrag — ディフューズ粒子が隣接する流体粒子方向へ受ける力のスケール
  • Diffuse Ballistic: diffball — この近傍数を下回るディフューズ粒子は ballistic (弾道) として扱われる
  • Diffuse Lifetime: difflife — 生成されたディフューズ粒子の生存時間 (秒)

Xform Page 📁

Transform Order .xord 🎛️

コンポーネントに対する Scale / Rotate / Translate の適用順序を指定するメニューパラメータ

項目 内部名 説明
Scale Rotate Translate .srt T * R * S * Position (デフォルト)
Scale Translate Rotate .str R * T * S * Position
Rotate Scale Translate .rst T * S * R * Position
Rotate Translate Scale .rts S * T * R * Position
Translate Scale Rotate .tsr R * S * T * Position
Translate Rotate Scale .trs S * R * T * Position

Rotate Order .rord 🎛️

X / Y / Z 軸の回転を合成する順序を指定するメニューパラメータ

項目 内部名 説明
Rx Ry Rz .xyz R = Rz * Ry * Rx
Rx Rz Ry .xzy R = Ry * Rz * Rx
Ry Rx Rz .yxz R = Rz * Rx * Ry
Ry Rz Rx .yzx R = Rx * Rz * Ry
Rz Rx Ry .zxy R = Ry * Rx * Rz
Rz Ry Rx .zyx R = Rx * Ry * Rz

Transform 値 📏

位置・回転・スケールを XYZ 軸で指定する基本パラメータ:

  • Translate: t (tx, ty, tz) — X / Y / Z 軸の移動量。NVIDIA Flex Solver COMP 自体の配置位置 (シミュレーション空間のオフセット)
  • Rotate: r (rx, ry, rz) — X / Y / Z 軸まわりの回転角度 (度)
  • Scale: s (sx, sy, sz) — X / Y / Z 軸の非一様スケール
  • Pivot: p (px, py, pz) — Scale / Rotate の基準点
  • Uniform Scale: scale — 3 軸を一括スケーリング

Parent Transform Source .parentxformsrc 🎛️

コンポーネントの初期位置の参照元を選択するメニューパラメータ (旧 Constrain To)

項目 内部名 説明
Parent (Hierarchy) .parent 親階層の transform を使用 (デフォルト)
Specify Parent Object .specifyparent Parent Object で指定した任意 OP の transform を使用
World Origin .worldorigin ワールド原点を基準にする (親階層の transform を無視)

Forward Direction .forwarddir 🎛️

前方として扱う軸を選択するメニューパラメータ

項目 内部名 説明
+X .posx X 軸正方向を前方とする
-X .negx X 軸負方向を前方とする
+Y .posy Y 軸正方向を前方とする
-Y .negy Y 軸負方向を前方とする
+Z .posz Z 軸正方向を前方とする
-Z .negz Z 軸負方向を前方とする (デフォルト)

Look At Up Vector .lookup 🎛️

Look At 制約での上方向ベクトルの扱いを選択するメニューパラメータ

項目 内部名 説明
Don’t Use Up Vector .off 上方向ベクトルを使用しない (Look At ターゲットが Y 軸を跨がない場合に有効)
Use Up Vector .on Orient Up Vector で指定した軸を上方向として精密に回転を定義
Use Quaternions .quat クォータニオンで球面上の最短経路として回転を計算

Look At / Path 🎯

Look At 制約 / SOP パス追従パラメータ:

  • Parent Object: parentobject — Parent Transform Source が specifyparent のとき、親として使う任意 OP のパス
  • Look At: lookat — 常に向き続けるターゲット 3D COMP のパス
  • Path SOP: pathsop — このコンポーネントが追従するパスを定義する SOP
  • Roll: roll — パス上を移動するときの回転角度
  • Position: pos — パス上の位置 (0 = 開始点, 1 = 終端点, 最大 10 で複数周回)
  • Orient along Path: pathorient — オンの場合、コンポーネントの +Z 軸がパスの進行方向を向く
  • Orient Up Vector: up (upx, upy, upz) — Look At 制約の上方向ベクトル
  • Auto-Bank Factor: bank — パスの曲率に応じた自動バンク (0 で無効)

Pre-Xform Page 📁

Transform Order (Pre) .pxord 🎛️

Pre-Xform レイヤの Scale / Rotate / Translate 適用順序を指定するメニューパラメータ (Xform Page と同じ 6 種)

項目 内部名 説明
Scale Rotate Translate .srt T * R * S * Position
Scale Translate Rotate .str R * T * S * Position
Rotate Scale Translate .rst T * S * R * Position
Rotate Translate Scale .rts S * T * R * Position
Translate Scale Rotate .tsr R * S * T * Position
Translate Rotate Scale .trs S * R * T * Position

Rotate Order (Pre) .prord 🎛️

Pre-Xform レイヤの回転合成順序を指定するメニューパラメータ (Xform Page と同じ 6 種)

項目 内部名 説明
Rx Ry Rz .xyz R = Rz * Ry * Rx
Rx Rz Ry .xzy R = Ry * Rz * Rx
Ry Rx Rz .yxz R = Rz * Rx * Ry
Ry Rz Rx .yzx R = Rx * Rz * Ry
Rz Rx Ry .zxy R = Ry * Rx * Rz
Rz Ry Rx .zyx R = Rx * Ry * Rz

Pre-Xform レイヤ 📁

Pre-Xform レイヤ (メイン Xform の前に適用される追加 transform):

  • Apply Pre-Transform: pxform — Pre-Xform レイヤの有効化
  • Translate / Rotate / Scale / Pivot (Pre): pt / pr / ps / pp — Pre レイヤの位置・回転・スケール・ピボット
  • Uniform Scale (Pre): pscale — Pre レイヤの一括スケーリング
  • Reset Transform / Commit to Main: preset / pcommit — Pre レイヤをリセット、または Main へコミット
  • Xform Matrix/CHOP/DAT: xformmatrixop — 4×4 行列を直接指定して transform を適用 (XformMatrix * PreXForm * Position)

Render Page 📁

Render 設定 🖌️

レンダリング動作パラメータ:

  • Material: material — 内部ジオメトリに適用する MAT
  • Render: render — Render TOP でこのコンポーネントのジオメトリを可視化するか (Render Flag との論理 AND)
  • Draw Priority: drawpriority — 描画順 (値が小さいほど後に描画)。Transparency 制御で頻用
  • Pick Priority: pickpriority — Render Pick CHOP / DAT の Search Area 内で複数 OP が見つかったときの優先度 (値が大きいほど優先)
  • Wireframe Color: wcolor (wcolorr, wcolorg, wcolorb) — ワイヤーフレーム表示時の色
  • Light Mask: lightmask — このジオメトリに影響する Light COMP の制限リスト

Common Page 🔧

Common Page (sync placeholder) 🔧

COMP family 共通の Common Page (canonical 同期待ち):

  • Common Page: canonical 同期待ちの placeholder

実践アイデア 💡

Example 1: 水流シミュレーション: 蛇口から流れる水の最小構成 💧

NVIDIA Flex Solver COMP (Gravity=(0,-9.8,0), Viscosity / Surface Tension) → 子に Flex Actor COMP (Fluid, Emitter SOP) + Flex Actor COMP (Static Collider, 床/障害物) → Nvidia Flex TOP で粒子位置取得 → Render TOP

NVIDIA Flex Solver COMP の最小構成。Gravity と Viscosity / Surface Tension を設定し、子として流体粒子を放出する Fluid Actor と Static な障害物 Actor を配置することで、リアルタイム水流シミュレーションが構築できる。粒子位置は Nvidia Flex TOP から取得して GPU レンダリングに渡す。

  1. NVIDIA Flex Solver COMP を作成し、Gravitational Acceleration(0, -9.8, 0) に設定
  2. Particle Radius0.05 前後、Viscosity2.0Surface Tension0.05 に設定して水らしい質感に調整
  3. 子として NVIDIA Flex Actor COMP を作成し Type を Fluid に、Emitter SOP から粒子を発生させる
  4. 別の Actor COMP を Static Collider として配置 (床・水受け容器)
  5. Nvidia Flex TOP で粒子位置を読み出し、Render TOP / Instance 描画で可視化

Example 2: 布シミュレーション: 風で揺れるカーテン 🪡

NVIDIA Flex Solver COMP + Force COMP (風) → 子に Flex Actor COMP (Cloth, Grid SOP) + Static Pin Actor → Render TOP

Flex は布 (Cloth) も粒子ベースで扱える統合ソルバ。Grid SOP をカーテンメッシュとして Flex Actor COMP (Cloth Type) に渡し、上端の頂点を Static にピン留めし、Force COMP で風を加えれば、揺れるカーテンが構築できる。Iterations を上げると拘束の収束が安定する。

  1. Grid SOP でカーテンメッシュを作成し、NVIDIA Flex Actor COMP の Type を Cloth に設定
  2. 上端の頂点群を Static (固定) として指定 (ピン留め)
  3. Force COMP を作成し、Force Type を Wind 等の力場に設定して Solver の Global Forces に登録
  4. Solver の Number of Iterations10 程度に上げて布の収束安定性を確保
  5. Start Sim パルスで風を受けてはためくカーテンが完成

Example 3: ディフューズ粒子: 滝の水しぶき表現 🌊

NVIDIA Flex Solver COMP (Enable Diffuse Particles ON + Max Diffuse + Threshold) → Flex Fluid Actor (高速で流れる水) → Nvidia Flex TOP (Diffuse 粒子取得) → GPU Instancing で霧表現

Enable Diffuse Particles を有効化すると、運動エネルギーが高い流体粒子から自動的に水しぶき・泡・霧 (ディフューズ粒子) が生成される。Diffuse Threshold でしきい値、Max Diffuse Particles で上限、Diffuse Lifetime で生存時間を制御する。Nvidia Flex TOP からディフューズ粒子の位置・速度を取り出し GPU インスタンス描画で霧効果を表現できる。

  1. Solver の Enable Diffuse Particles をオン
  2. Max Diffuse Particles50000 程度に、Diffuse Threshold50 前後に調整 (運動エネルギーが高い場所でだけ霧が出る)
  3. Diffuse Buoyancy0.5 前後にして霧が上昇する効果を加える
  4. Diffuse Lifetime3.0 秒程度に設定
  5. Nvidia Flex TOP でディフューズ粒子の位置を取得し、Render TOP + Geometry Instance で半透明スプライト描画

Example 4: 境界制限 + Pre-Roll で安定した初期状態 🚧

NVIDIA Flex Solver COMP (Enable Boundaries + Bounding Box SOP + Pre-Roll Time) → Flex Fluid Actor (Box SOP 内の流体) → Render TOP

Enable Boundaries + Bounding Box SOP で粒子が無限に逃げ出すのを防ぎ、Pre-Roll でシミュレーション開始前に流体が容器内で落ち着いた状態を作る運用パターン。本番再生開始時点で水面が静止した美しい初期状態にしたい場合に必須。

  1. Box SOP を作成し容器のサイズに調整、Solver の Bounding Box SOP に指定
  2. Boundary Modebbox に設定し、Enable Boundaries をオン
  3. Pre-Roll をオンにし、Pre-Roll Simulation Time2.0 秒程度に
  4. Show Pre-Roll をオフにしておくと、再生開始時に Pre-Roll 完了後の状態が一気に表示される
  5. Start Sim パルスで Pre-Roll 経由のシミュレーション開始 — Info CHOP で Pre-Roll 進行状況を監視可能

関連オペレータ 🔗

類似機能OP 🔍

  • Bullet Solver COMP — 剛体物理を担当する別系統のソルバ COMP (Flex は粒子・流体・布・ロープ向け)

組み合わせ推奨OP 🔄

  • Nvidia Flex TOP — Flex Solver の粒子位置・速度・ディフューズ粒子を GPU テクスチャとして取り出すインタフェース
  • Force COMP — Global Forces として登録する力場 (Flex でサポートされるのは force field のみ)
  • Geometry COMP — 境界用バウンディングボックス SOP のホストやレンダリング対象ジオメトリのホスト
  • Info CHOP — Solver の Pre-Roll 進捗・cook 時間・粒子数等を CHOP チャンネルで取得

前処理・後処理COMP 🎯


Info COMP情報 📊

NVIDIA Flex Solver COMP は Info CHOP / Info DAT による詳細情報取得に対応しています。粒子データの取得には Nvidia Flex TOP の併用が推奨されます。

COMP 固有情報 📦

  • num_children: コンポーネント内部の子 OP の総数
  • num_dats: 内部 DAT の数
  • num_chops: 内部 CHOP の数
  • num_tops: 内部 TOP の数
  • num_sops: 内部 SOP の数

汎用オペレータ情報 🔄

  • total_cooks: プロセス開始からのクック回数
  • cook_time: 最後のクック時間 (ミリ秒)
  • cook_frame: 最後にクックされたフレーム番号
  • warnings: 警告数
  • errors: エラー数
  • cpu_memory / gpu_memory: OP が確保している CPU / GPU メモリ使用量 (Flex は CUDA 上で動作するため GPU メモリが主)

Object 固有情報 📊

  • tx / ty / tz: NVIDIA Flex Solver COMP 自体のワールド位置 (Translate)
  • rx / ry / rz: NVIDIA Flex Solver COMP 自体の回転 (度)
  • sx / sy / sz: NVIDIA Flex Solver COMP 自体のスケール
  • preroll_state: Pre-Roll の進行状態 (シミュレーション初期化中か再生中か)

トラブルシューティング ⚠️

よくある問題と解決策 🔧

❌ Problem: シミュレーションが動かない / 粒子が落下しない
✅ Solution:

  • Play パラメータがオンか確認、Start Sim をパルスして初期化 + 開始
  • 対象 Actor が他の NVIDIA Flex Solver COMP に既に登録されていないか確認 (1 Actor は 1 Solver にしか登録できない)
  • Gravitational Acceleration(0, 0, 0) になっていないかチェック
  • Force COMP を Global Forces に登録した場合、Force Type が force field 系か確認 (それ以外の Force は Flex で無視される)

❌ Problem: 粒子が境界をすり抜ける / 無限に飛んでいく
✅ Solution:

  • Enable Boundaries をオンにし、Bounding Box SOP または Plane シーケンスで境界を定義
  • Number of SubstepsNumber of Iterations を増やして拘束計算を精密化
  • Collision DistanceShape Collision Margin を Particle Radius に対して適切な比率に調整
  • Clamp Speed をオンにし Max Speed で粒子の最大速度を制限する

❌ Problem: 流体の挙動が水らしくない (粘性高すぎ / 表面張力不自然)
✅ Solution:

  • Viscosity0.0 ~ 5.0 範囲で調整 (水は 2.0 前後、油はさらに高め)
  • Surface Tension を下げると水滴がまとまらずに広がる、上げると球状を保ちやすい
  • Cohesion を下げると粒子が分散しやすくなる (霧状の表現に有効)
  • Particle Radius を変更したら他の物性パラメータも再調整が必要 (radius が物理スケールの基準になる)

❌ Problem: ディフューズ粒子が生成されない / 多すぎる
✅ Solution:

  • Enable Diffuse Particles がオンになっているか確認
  • Diffuse Threshold を下げると低エネルギーでも生成されやすくなる (上げると高速衝突時のみ)
  • Max Diffuse Particles を増やして上限を緩和 (ただしパフォーマンス低下に注意)
  • Diffuse Lifetime を短くすると古い粒子から消えて新規生成余地が増える

参考資料 📚

その他 🔗

公式リソース 📖

この記事はLLMと共に内容を執筆、更新しています。
最新バージョンとの項目差異など、情報の不一致を見つけた心優しい方はXもしくはInsta、メールなどよりサイト管理者までご連絡ください😎


まる。

お仕事のご依頼はDM又はメールにて。
━━━━━━━━━━━━━━━━━
Python/Touchdesigner/M5Stackをこよなく愛すフルスタックエンジニア。
専門は生理心理学、趣味はヨガやサウナ、EMS電気風呂などヘルスケア全般。
脳波や筋電、心拍を中心とした生体情報のセンシング&インタラクティブアートづくりがライフワーク。

普段はワントゥーテンという会社で空間演出エンジニアをしています。
リファラル採用お繋ぎできますので、我こそはという尖った方は経歴と希望職種添えてDMください(エンジニア以外、営業職等もOK)。
ご飯行きましょう。

↓日常垢
Instagram:@malmal0v0

まる。をフォローする
その他の記事はこちら
Math Combine POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
ZED Select TOP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
ZED POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
Window COMP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
Widget COMP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】

タイトルとURLをコピーしました