Fabric Engine の紹介と2.3事情

この記事では SIGRAPPH2016 に合わせてリリースされた Fabric Engine 2.3 に基づき、Fabric Engine とは何かについてと最近の事情について筆者の所感とともに紹介しよう。以後 Fabric Engine のことを FEと略記する箇所がある。

## Fabric Engine とは

http://fabricengine.com/
カスタムDCC *（デジタルコンテンツ作成）* ツール・アプリケーションを作成するためのプラットフォーム[^2]。 つまりツールを作るためのツールだ。単体起動する *Canvas* の他、各種DCCツールの中からプラグインとして動作し、ホストソフトと連携動作する。FEではとくに、『***拡張性***, ***パフォーマンス***, ***ポータビリティ***, ***手軽さ***』に主眼をおいている。VFXやGame向けであったが最近は建築ビジュアライゼーション、VR向けにもフォーカスしている。

[^2]: 初期の名前は CreationPlatform であった

Fabric Engineについて全くしらないのであればまず始めに ["What is Fabric Engiene2?"](https://vimeo.com/132732105) のビデオをご覧頂きたいその他動作イメージや何ができるかについてはショウケースページを参考に。
http://fabricengine.com/showcase/


詳しい文書をお求めであれば、公式ドキュメントのほか、非公式の日本語ドキュメントも存在するのでそちらも合わせて確認されたい。
 公式ドキュメント： http://docs.fabric-engine.com/FabricEngine/2.3.0/HTML/index.html
 非公式 日本語版 ： http://yamahigashi.github.io/unofficial-fabricengine-documents-ja/index.html  


Core機能以外のソースコードは https://github.com/fabric-engine に公開されている。
ライセンスについては[こちらの記事](http://qiita.com/yamahigashi@github/items/722a265e257c961ed18c)をお読みいただきたい。


### Fabric Engine を使うことで

ツールの開発に恩恵がある。そこそこの性能を発揮する柔軟なツールを、手軽に作成できる。波及し作成したツールの利用者にとっても快適な作業ができることとなるだろう。具体的な成果は後段で述べる[導入事例](#導入事例)や、巻末に付した[資料](#学習資料チュートリアル)に目を通していただきたい。

### 障害は
ただし現時点の日本では極めてマイナーな存在であるため、データの取り回しの問題、導入にあたっての[苦労](http://qiita.com/yamahigashi@github/items/722a265e257c961ed18c)、既存環境から移行に伴う混乱が予想される。サポート体制も充実しているとはいえない。日本語によるサポートは絶望的だ。また Fabric Engine は「初期状態でプリセットにしたがってやれば何か見栄えのいいものができあがる」といったたぐいの物ではない。理解して自分で組み上げることで初めて意味のあるものを作ることができる。


### サポートされているツール
現時点でサポートされているものを挙げると

* Autodesk Maya
* The Foundry MODO
* Autodesk Softimage

* Autodesk 3DS Max（β）
* Epic Unreal Engine 4(β）

* MAXON Cinema 4D （個人ユーザの方が開発中、未リリース）

これらサポートされているツール上で、同一の Canvas ファイルが動作する。
*過去には [Houdini版を個人の方が開発されていた](https://github.com/varomix/SpliceHoudini)が今は不活*

---

## 特徴
まずは Fabric Engine を形成する２つの要素、CanvasとKL について述べよう。ユーザはこの2つを通じFEを利用することになる。つぎにこの2つが土台とする Core について述べる。

### *Canvas* ノードベースエディタ 

すでに Softimage のICE、Houdini、Blender の Animotion Nodes, UE4 の Blueprints, Scratch, Yahoo! Pipes 等に触れたことがあれば似たようなものだと考えてよい。 馴染みのない方への簡単な説明： 【ノードと呼ばれるブロック的な見た目の要素で組み立てるピタゴラスイッチ】。さまざまな機能を持った部品を組み合わせて望みの動作をつくりあげる。（*対して一般的なプログラムであればコトバで記述するピタゴラスイッチといえるかもしれない*）ノードは、「グラフ」、「関数」いずれかのタイプに分類される。「グラフ」とは文字通りノードをグラフ上にならべ繋ぎ動作を定義したもの。「関数」ノードとは以下の項目で述べる KL言語で動作を規定したものとなる。これらノードは最初からある程度組み込みで揃っている他、各自作成することが可能。


#### バージョンごとのトピック

##### 2.3 (2016.7)
***『Block』***と呼ばれる一連の***プリセット*** *(ノードを再利用可能な状態にパッケージングしたものを意味する。「プリセット」のインスタンスが各個別のノードである)* により、待望の loop 挙動が実装された。ようやくグラフノードだけでも一定以上の表現力を持つようになったといえる。 *ノードのみで実現するの以前までは不可能...関数ノードを作りそこで回していた...* 

##### 2.2 (2016.5)
Canvasスタンドアロン版が Python / PySide に書き換えられた。（以前は C++/Qt)さらにスクリプトエディタが搭載されグラフ上の操作をいわゆるマクロ化することが可能になった。Canvas自体も Python製（*実際にはCoreに関連するものは C++/Qt*）であるため、Canvas自体の拡張あるいは、FEを利用するカスタムツールの作成が容易になった。なお拡張には Qt/PySide の Widgetを利用するのが手軽。
 
##### 2.1 (2016.2) 
『***DFGBinding***』と呼ばれる一連のプリセットにより、Canvasグラフそのものをデータとして扱うことが可能になった。グラフ上から「グラフ(ノード群）とそのグラフに対する入力・出力データをバインドしたもの」に対して操作を行える。例えば DFGBinding を使うと、従来は無理であったグラフに対する入力の動的な変更や、条件に応じてディスク上から読み込んでくるグラフを変えるといったことが可能となる。それぞれ別個のものを一段階抽象度を上げ DFGBinding にすることで統一的に扱える。*(ちなみに DFGとはFEにおけるノードの内部表現名, data flow graph の略)* 詳しくは http://fabricengine.com/graphs-flowing-through-graphs/

##### 2.0 (2015.9)
初のメジャーバージョンアップ。それまでの Splice にかわり  **Canvas が導入**された。


### 独自言語 *KL*

Fabric Engine の動作を記述する言語。Canvasで使用する「プリセット」の振舞はこの言語でかかれている。組み込みでも提供されているが、十分揃っているとは言い難いため、FEの実戦投入を考えているのであれば自身で書く必要があるだろう。また、ノードのみでできることが増えたので以前より重要度は高くはないが、KLを理解することは Fabric Engine の挙動の理解には必要不可欠となる。なぜなら Canvasでノードを組み合わせてのグラフの構築とは、その実態はノードの形をしたKLを組み合わせプログラミングしていることと同義だ。即ちKLの特色がそのまま Canvas にも反映されているからだ。

惹句では Javascript や Python（のような構文でかけるし同様に簡単だよ！という文脈で）がよく引き合いに出されるが、たしかに習得難易度、環境導入難易度は高くないのだが、筆者個人の意見であるが、全く異なる言語と考えるべきだ。見た目が似ているからといって、ある言語を他の言語であるかのように見做してしまと、間違いの源となる。手遅れにならないうちに別のものとして扱うようにしたほうが良いと考える。KLをしいて一言で表すのであればC言語にクラスをつけてポインタ操作をなくし、LLVMを使いJITコンパイルにしたものというのが近い。Houdini における VEX と似た立ち位置と思われる。

#### KLの特徴

* 静的型付け
* 固定長・可変長配列や辞書があり、基本型が揃っている
* 構造体とオブジェクトの使い分け、メモリレイアウトに対する介入
    → 構造体: 値型、オブジェクト: 参照型
 
* [エクステンション機構](http://yamahigashi.github.io/unofficial-fabricengine-documents-ja/ExtensionAuthoringGuide/index.html#extrg)による C/C++ライブラリの読み込み
* [PEX](http://yamahigashi.github.io/unofficial-fabricengine-documents-ja/KLProgrammingGuide/statements.html#parallel-execution-statement)：並列実行オペレータを容易に記述可能
* [PEX on GPU](http://yamahigashi.github.io/unofficial-fabricengine-documents-ja/GPUCompute/index.html): いくつか制限があるが GPGPUでの並列実行オペレータの記述も容易

Canvasと違いこちらは登場以降[^3]大きな仕様変更、機能追加なく安定している。さらなる詳細は[ドキュメントを参照](http://yamahigashi.github.io/unofficial-fabricengine-documents-ja/KLProgrammingGuide/index.html#klpg)。

[^3]: 筆者が記憶している限りver1 以前 CreationPlatform として触れた時からほぼ今の形だった。

### Fabric Core

以上の Canvas, KL が土台とするのが Coreである。Core は「マルチプラットフォーム、マルチスレッド、JIT」という特徴を持った実行環境だ。この土台は特定のDCCツールと結びつくものでなく、むしろ接合することで様々なDCCツール上からこのCoreを駆動することができる。

## 導入事例

http://fabricengine.com/case_study/ に Double Negative, MPC, Psyop, Nozon での導入インタビュが載っている。さらに http://fabricengine.com/showcase/#presentations にカンファレンスでの発表録画等を視聴できる。ここにないものもあるので以下におもだったものを掲載。

### PlatinumGames

* http://www.slideshare.net/ssuser5e4af8/gcc2016-p-facialrig

     おそらく日本で唯一と思われる導入事例。「プラチナゲームズ流『フェイスリグ』昔と今！」 Game Creators Conferernce 2016 でのプラチナゲームズ高島正規さんによる発表のスライドと[この講演に関するまとめ togetter](http://togetter.com/li/948190)。SoftimageからMayaへの移行に伴うフェイスリグの選定と課題について。

### Double Negative

* https://vimeo.com/176981136

    SIGGRAPH2016でのユーザ事例紹介セッション。dneg社の過去2年にわたる研究成果が開陳されている。まずは rig のパフォーマンス向上の追求。Maya上で出来る限り性能と開発容易性の両立を目指した。キャラアニメーションパイプラインを『R&D, Rigging, Animation』の3つに分け、自動生成と最適化がなされるように工夫。それぞれの段階でベストなものとなるようにした。
    つぎにスキンクラスタノードのカスタムパラメータに塗るためのツールの作成。FEにはそのための機能がある。
    結論として・プロトタイプと開発を素早く行える ・ビルドも早い ・ファイルサイズを小さく保てる ・アニメーションが早い ・プロダクションに耐える ・他のプラットフォームにも持っていける とのこと。


### MPC:

* http://on-demand.gputechconf.com/gtc/2016/video/S6246.html
     GTC2016でのセッション: S6246 - Digital Actors at MPC: Bridging the Uncanny Valley with GPU Technology. ターミネーター・ジェニシスでのBreak Down、デジタルシュワルツネッガー作成ツールの話。VFXでのフェイシャルリギングについて、非常に高精細なメッシュにおいてブレンドシェイプと、デフォーマをどのように作り上げていったか。(9:30あたりからFEの話）
 
   
* https://vimeo.com/138095024
    SIGGRAPH2015でのプレゼン。内製フレームワーク近代化改修と既存フレームワークMUGGINSの話。要件として「multi-threading, Grahp&Node, Lua or Python, GPGPU, UI Framework, Modern OpenGL, 複数のDCC」があったらしい。FEであればEDK（extension development kit: エクステンション作成キット）から既存フレームワークと接着できる。*USDの話もでてくる（33分あたりから）*

### Psyop:

* https://vimeo.com/176941294
    SIGGRAPH2016でのユーザ事例セッション。おもにプロシージャルについて。いわゆるオペレータスタックとして使えるように各種操作を作っていった。

    * はじめはEntwiner:ニット生地をプロシージャル生成するツールの紹介。もともとはICEで作成していた。ICEと同じ手法がそのまま通用。 NURBSを拡張した MURBS（Mesh + NURBS)と呼ぶ技法を使っている。
    * 次はレンダリングの説明。 Arnold を使用。FE-Arnold で橋渡しをし、レンダリング時にFEの生成物をArnoldでのジオメトリに置換。（maya上の）Canvasからプロシージャル生成したものを Arnold にそのまま流すことができる。
    * 最後は Rffleure （ラッフルー/ruf floor）：こちらも元はICEで作られていた羽毛システム。ガイドカーブでタンジェントを生成、[scatterガイド](#psyop-extentions)とガイド羽メッシュを元に体メッシュ上に指向性のあるscatterし植毛。  


* https://vimeo.com/138773731
    SIGGRAPH2015でのユーザ事例セッション(1)：ソースデータの作成元ツールを問わないアーティストによる制御が簡単で、高速なヘアシミュの構築。

* https://vimeo.com/138610226
    SIGGRAPH2015でのユーザ事例セッション(2)：やり直しの融通が効き、高速な、delta mushを使った JiggleMush deformer （ブルブル震える）の構築。およびメッシュ上に、制御可能なランダム配置 Scatter （Dart Throwing）ツールの話 SIGGRAPH2016のベースと思われる。なおこの Scatterエクステンションは[公開](https://github.com/Psyop/psyop-fabric-exts)されている。




## 雑感

ここからは筆者個人の主観となるが Fabric Engine に触れての感想を独断と偏見に基づき述べる。筆者はゲーム業界の経験しか無く映像業界については無知なため偏った視点であることをご了承いただきたい。まずは Fabric Engine の核である『拡張性, パフォーマンス, ポータビリティ, 手軽さ』についてから。

### 拡張性
拡張性の高さはかんじる。KLにもすんなりと馴染むことができた。Canvasでの操作ももんだいない。ただ組み込みで用意されているものが豊富とはいえないため、欲しい機能があれば自分で用意する必要がある。開発環境の構築の容易さは評価できる。KLの開発に必要な物は Fabric Engineのインストールだけで済む。C/C++ライブラリをFEに組み込むにはC/C++コンパイラが必要だが、いわゆる普通のセットアップで済む。*（標準から外れたコンパイラで Python をビルドし、依存Pythonモジュールもソースからビルドし…何故かエラーがでて…と言った計算機リソースの無駄遣いな悪夢から開放される）*

### パフォーマンス
正確な比較をしたわけではないが、ICEで組んでいたものを移植すると少なくとも ***ICEより、ずっとはやい!!*** ではHoudiniや他で書いたものと比較してどうかというと経験がなく不明（申し訳ない）。ただし、PEXの記述が簡単、GPGPUの利用*(動作環境がNVIDIAに限定される）* も手軽というメリットがある *(ただし使い所による）*。

### ポータビリティ
Softimage で作ったものがそのまま Mayaでも動くというのは感動的である[^4]。 ただ短いスパンでの小規模な利用ではおそらくポータビリティの高さというメリットを生かせない。また、大規模な利用で複数ツールをまたがった利用の場合、FE自体はよくとも周辺環境の整備に手間がかかることが予想できる。その手間を乗り越えた時に価値を発揮できるのではないか。では短期間でのポータビリティではなく、より大局的な視点（つまり唐突にメインツールがディスコン宣告されたような場合）はどうだろう。持っていける既存資産の価値次第といえる。(*心機一転フルスクラッチというのは会社や多数にとってはマイナスかもしれないが個人的ににとっては楽しい*) FEによるポータビリティの確保ということは、FEという新たなロックイン先を作ることと同義なので、自前の汎ライブラリをC++(or 他言語)で書くという方が妥当ということもあるだろう。普段からツールのドメインを考慮し、ライブラリ化を進めておくことも大事であろう。またポータビリティが報われるかどうかは、人次第 ―つまり何かあった時乗り越える力を持った人を囲えるか、乗り越えるに値する資産をつくれるか― ではないだろうか。極個人的な意見を述べさせていただくと、より良いDCCソフトが有れば離脱可能で、よりモダーンな開発環境としてFEに魅力を感じている。

[^4]: ただし理由がないのであればおすすめはしない

### 手軽さ
誰にとっての手軽さであるか？ A: プログラマ、B: TD/TA、C: アーティストの3視点がある。たしかにコードを書かなくても、色々な物を作ることができる。ただし、用意されているもの + 用意できるものの範囲で。ノードをでできることは用意したプリセットで決まる。本当に手軽なだけであれば選択肢は他にある。またFEに限った話ではないが、巷間伝聞するに『ノードベースにすればだれでも容易に複雑なものを云々』などという世迷い言を耳にするが、ありえないはなしだ。見た目、ツールがどのように変わろうともプロダクションに耐えるものを作るにはそれなりの習熟を要する。Fabric Engine でも同様、Canvasでの作業は、むしろ印象ではかなりプログラミングに近しい思考を要する。「手軽さ」を活かすには分担が必須なのだ。コアな部分をコアな人が担当し、それを利用するといった運用が可能であれば、FEは優秀であるといえる。パートをそれぞれ切り出しみてみると素性が良い、が単独で意味のあることなすことはできない。物理人員・仮想人員による分担の形態は問わない（一人で全部やる）が、A, B, Cをこなしたうえで初めて手軽ということができる。-*それは手軽なのか*-


### これから
つぎに Fabric Engine の今後の動向に触れておこう。関係者のフォーラムでの発言を元に筆者の予想を交えて構成している。ロードマップも公開されていないため、不正確な情報であることをあらかじめお断りしておく。細かい改善点では *Block のPEX対応*, *InlineDrawingなどの改良*, *CanvasのUI使い勝手向上* が言及されている。大きめの機能では *2016年後半をめどに* ***SceneHub, RTR2***(Real Time Renderer) が予定されているようだ。また、VR用の何かも合わせてリリースされるのではないかおもわれる。

#### SceneHub: シーンを記述する抽象インタフェース
いわゆるシーングラフや、そのグラフ上のオブジェクトを用いたプロシージャル生成等、複雑なシーンの組み立てに役立て、さらにはレンダラの記述、流しこみと繋いでいくもの（RTR2)、らしい。Arnoldのサポートもおそらくあるだろうと予想している。[先日一般公開されたUSD](http://qiita.com/takahito-tejima/items/3c2fa4a4a83aa04b9a0e)[^1]との組み合わせ、比較はどのようなものか興味深い。

[^1]: USD((ユニバーサルシーンディスクリプション）Pixerのシーングラフライブラリ、リンクはPixarの開発者である手島孝人さんによる解説記事。このような1次情報を日本語で読めるのは本当にありがたい。

今年の[SIGGRAPH2016の事例](http://fabricengine.com/siggraph-2016-fabric-user-group/)を見ていただけるとわかるが、Fabric Engine 黎明期より使い込んできた各社（*Sofitmage ICEマスターであった面々でもある*)が、成果をだしている。これからも尖ったものをつくりだすのではないか。おそらくこれからもそういったスタジオの要望に叶うような機能が搭載されていくものと思う。


## まとめ
Fabric Engine社が比較的小規模な開発体制であるためか、リリース以来なかなか「すぐに投入できるなにか」を実現するもの（≒プリセット）が増えていない。そのぶん着実に地固めをしてきているが魅力が伝わらないもどかしさも感じる。メリットを最大限に活かすのであればそこそこガッツリ作りこむ・使い込む必要があるだろう。そうでなくても便利ではあるのだが、2.3以降ライセンス体系が若干変更されたため少々使いづらくなった。ライセンスについて[別に記事を用意したのでこちら](http://qiita.com/yamahigashi@github/items/722a265e257c961ed18c)をご覧頂きたい。具体的には社外スタジオとの協働の際、ライセンスが問題になるだろう。

では、小規模な使い方をする場合どのような形態となりうるか。巻末リンク集にも掲げているが、単体で完結するような「デフォーマ」「リグソルバ・オペレータ」「ジェネレータ」などがある。これらは今すぐに役に立つものを手軽に用意できる。いずれも FE でなければ作れないものではないが、ホストを選ばず速度と記述容易性を兼ね備えた選択肢はほかにない。(*C++は環境構築が手間であり、Pythonでもコンパイル必須なモジュールに依存する場合はやはり環境構築が手間となりうる。本稿の趣旨から外れるが将来のDCCツールに組み込まれるスクリプト言語ではこの二律背反を解決するような言語が選択されるのではないか。Python１強は当分続くだろうが、やはり最初から速度をシコウし、かつ便利な言語を利用できるに越したことはない*)

見た目や機能から Houdini を連想される方もいらっしゃるだろうが、おそらく実際に近いのは Houdini Engine ではないかと**考える** (*以下Houdiniへの言及はHoudiniをきちんと使用したことがない為、空想に基づく適当な発言となってしまうことをどうかご容赦願いたい*）。Canvasスタンドアロンは .canvasや、プリセットを作るための環境、あるいはカスタムツールを実行するための場であり、いわゆる統合ソフトとしての機能は持たない。そのため素材を用意するための母体ソフトを必要とし、その素材を加工する高性能なツールをFEで用意することになる。はじめからそのように作られている点による、ホストとのやりとりの容易さなどにおいて Houdini Engineと比して強みがあるのではないかと**想像**する。

また、組み込みの機能をみてもいわゆるシム系について不足している(fluidやparticle）。これは既存の競合がすでに確立しているため、そちらには踏み込まないというFE社の判断によるものだ。そちらで作成しAlembicなどで持ってくれば良い。（リンク失念したがフォーラムで言及）また、本当に必要であれば[実装](http://forums.fabricengine.com/discussion/292/wip-my-approach-to-a-poor-mans-particle-system-for-fabric), [2](http://forums.fabricengine.com/discussion/comment/1742/)すれば良いのだが、とうぜん敷居が高い。そのため、初期段階で（あるいは+α でプラグインを導入することで）「なんでもできるソフト」のほうが使い勝手が良いということもあるだろう。（もちろん両立できるだろうが）そういったプラグインに頼ったソフトと比較しての利点は、「***柔軟性、拡張性、統一性***」だ。どのような機能を構築しても、FEという共通の土台があるため、データ・ツールの互換性を維持しておくことができる。


### Rigging Framework Kraken について
別記事を準備中。結論を先に書くと過去に記事を[執筆した](http://qiita.com/yamahigashi@github/items/a47bdf90bf52a1ecfdcd)が当時から***目に見える***進展はあまりない。


## 結び
ここまでお読みいただき御礼申し上げます。ありがとうございます。この記事によりFabric Engine に少しでも興味を持っていただければ幸い。巻末に Fabric Engineの習得に役立つリンクを付す。何か不明点あればコメントにお寄せいただきたい。


---

## リンク集

### フォーラム

公式フォーラム http://forums.fabricengine.com/discussions 
もし Fabric Engine に興味をお持ちになり、情報を集めたいとお考えであればまずはここ。整理されている訳ではないが、過去ログが役に立つ。疑問が湧いたのであれば投稿してみよう。


## 学習資料、チュートリアル

公開されているチュートリアルや、ソースコードへのリンク集。古いものも混じっているので現在のFEではそのまま動作しないものも含まれるが参考にされたい。

### チュートリアル

#### 公式サイトから
http://forums.fabricengine.com/categories/tutorials
公式、ユーザ作成のチュートリアルやFAQが投稿されている

http://yamahigashi.github.io/unofficial-fabricengine-documents-ja/DCCIntegrations/Workshops/index.html
バージョン1時代のSpliceのもので、若干古くなってしまっているが（DCCの操作などは参考にされないように）KLの話など内部の設計の把握に今でも有効。


#### Fabric Engine Canvas Beginner Tutorial
[Fabric Engine Beginner Tutorial 01](https://vimeo.com/160689603)
[Fabric Engine Beginner Tutorial 02](https://vimeo.com/160832111)
[Fabric Engine Beginner Tutorial 03](https://vimeo.com/161124495)
[Fabric Engine Beginner Tutorial 04](https://vimeo.com/167217785)
[Fabric Engine Beginner Tutorial 05](https://vimeo.com/167564104)
[Fabric Engine Beginner Tutorial 06](https://vimeo.com/167568850)
Aron Kent さんによるチュートリアル。


#### Petfactory
[Petfactory](http://www.petfactory.se/) Johan Borgstrom さんの一連のチュートリアルビデオとそこで使われたエクステンション一式。必見。
https://github.com/petfactory/fabricEngine
http://forums.fabricengine.com/discussion/63/from-petfactory-combustion-engine-piston-setup-part-1
http://forums.fabricengine.com/discussion/97/from-petfactory-procedural-character

[Fabric Engine: Procedural Pipes Part 1 ](https://vimeo.com/144482970)
[Fabric Engine: Procedural Pipes Part 2 ](https://vimeo.com/144483295)
[Fabric Engine: Procedural Pipes Part 3 ](https://vimeo.com/144755197)
[Fabric Engine: Procedural Wall Part 1](https://vimeo.com/146236952)
[Fabric Engine: Procedural Wall Part 1](https://vimeo.com/146648391)
[Fabric Engine: Procedural Wall Part 1](https://vimeo.com/146897426)

[Fabric Engine: Combustion engine piston setup part 1](https://vimeo.com/147177058)

[Fabric Engine: Hydraulic piston setup part 1 ](https://vimeo.com/147025342)
[Fabric Engine: Hydraulic piston setup part 2](https://vimeo.com/147328269)

[Fabric Engine: Procedural Character Part 1](https://vimeo.com/148375219)
[Fabric Engine: Procedural Character Part 2](https://vimeo.com/148507158)
[Fabric Engine: Procedural Character Part 3](https://vimeo.com/148625028)
[Fabric Engine: Procedural Character Part 4](https://vimeo.com/149508702)
[Fabric Engine: Procedural Character Part 5](https://vimeo.com/149575006)

#### modo and Fabric Tutorial 01: animate and render pixel text 
https://www.youtube.com/watch?v=joQE6z3erbw
フォーラムで精力的に活動されているMarc Albrechtさんの MODOでのチュートリアル


### エクステンション

#### 

#### FabricVegetation
Ryan Chan さんによる Splice (*バージョン1時代の名前, 2ではそのままでは動かない*)  で ジオメトリに蔦を這わせるエクステンション
https://github.com/ryanchanwo/FabricVegetation
http://forums.fabricengine.com/discussion/35/from-ryan-chan-fabric-vegetation-artifacts-demo
https://vimeo.com/122667502

#### SimpLSystem - L-System collaborative project
Jonah Friedman さんによる Canvas で L-System実装したもの
https://github.com/jonahf/SimpLSystem
http://forums.fabricengine.com/discussion/260/simplsystem-l-system-collaborative-project

#### FESRetopo
Angel 07 さんによる Splice製のSI用のリトポツール、カスタムマニュピレータの用例の参考になる
https://github.com/Angel07/FESRetopo
http://www.si-community.com/community/viewtopic.php?f=27&t=5960&start=0

#### Winding compaund
http://forums.fabricengine.com/discussion/335/winding-compaund

#### Rock generator
http://forums.fabricengine.com/discussion/373/rock-generator

#### Pedrito-fabric-exts
Pedro Cabrera's extensions and presets for Fabric Engine
https://github.com/pedroCabrera/Pedrito-fabric-exts
http://forums.fabricengine.com/discussion/118/some-line-curve-basic-tools
http://forums.fabricengine.com/discussion/64/pc-polymesh-to-islands


#### Fabric-RBF: A Radial Basis Interpolation solver in KL
Ahmidou Lyazidi さんによる RBFソルバエクステンション
https://github.com/ahmidou/Fabric-RBF
http://forums.fabricengine.com/discussion/282/fabric-rbf-a-radial-basis-interpolation-solver-in-kl


#### Psyop Extentions
[Psyop](http://www.psyop.com/) Jonah Friedman さんによる [Siggraph2015プレゼンテーション](https://vimeo.com/138610226)に出てきた Scatter エクステンション。
https://github.com/Psyop/psyop-fabric-exts
http://forums.fabricengine.com/discussion/comment/2607/#Comment_2607


#### colorbleed-fabric-exts
[Colorbleed](http://www.colorbleed.nl/) Roy Nieterau さんによる NURBSカーブとデフォーマノード
https://github.com/BigRoy/colorbleed-fabric-exts
http://forums.fabricengine.com/discussion/120/nurbscurve-extension
http://forums.fabricengine.com/discussion/45/simple-polygonmesh-collision-deformer

#### FE研究動画
https://vimeo.com/user47909678/videos TKCM さんの研究成果。
[Study FE : DeformByCurve ](https://vimeo.com/166850172)
[Study FE : FE_SurfaceDeformer ](https://vimeo.com/170060752)
[Study FE : RBF_test](https://vimeo.com/167314617)
[Study FE : CloneToQuadPolygons ](https://vimeo.com/172786515)
[Study FE : Squash&Stretch_1-Axis ](https://vimeo.com/174254279)
[Study FE : CloneToLinesCurve ](https://vimeo.com/174981134)

#### FABRIK
筆者の FEでの FABRIK （Forward and backward reaching ik）でのfullbody ik実装。*実用性などあんまりない。* DFGBinding でちょっと面白い組み方したところが見どころ。
https://github.com/yamahigashi/fabric-fabrik-fullbody-ik

### Canvas拡張

#### Canvas Development UI
http://forums.fabricengine.com/discussion/568/canvas-development-ui
Jamie Macさんによる Canvas/KLランチャー。パスや起動オプションを設定しテストを走らせたり実行したりする。

#### node hierarchy viewer
http://forums.fabricengine.com/discussion/518/wip-nodehierarchyviewer-for-canvas-py
筆者の Canvas.py 拡張。Canvas上のノードを階層ツリービュー表示する Qt Widget

---