上の動画の注目すべき点は、煙がらせん状になっていることにある。その理由は、「風車の回転」と「横からの風」という条件が重なったことにある。

まずはモデル化してみよう

この現象をプログラミング言語「Python」（パイソン）でモデル化してみよう。そして「VPython」を使って3次元で視覚化してみよう。

VPythonの素晴らしいところは、素早く簡単に3Dオブジェクトを生成できることだ。ここでは、風車全体をモデル化するのではなく1枚の羽根だけに注目してみる。

風車の回転の中心にあるハブ：灰色の点、風車の羽根の先端：青色の点、羽根：赤の線。

羽根の動きを考えよう

羽根の長さ（L）から、ハブ（hub）に対しての羽根の先端の位置（tip）が決まる。ハブから先端へのヴェクトルを用いて、羽根を描ける。羽根に関して考えられるプロパティは、以下の3つである。

blade.pos.：羽根の片側の点（灰色）

blade.axis.：その反対側の点（青色）

blade.radius.：円柱の半径（L）

では一体、羽根はどのように回転するのだろうか？ 答えはかなりシンプルだ。羽根の向きと位置は「ハブと羽の先端の位置」に依存する。先端については、角度θからその位置が求められる。それがわかれば、ただ羽根を回せばいい。

コードをつくろう

さて、お次はコードだ。コードを走らせるには、〈PLAYボタン〉をクリックしてみてほしい。

しかし、これではまだ上の動画を再現できてはいない。以下の通り、いくつかの修正が必要だ。

横向きから見えるように、風車の向きを変える

ハブの位置をx軸方向に動かす（ハブを動かすことで風を再現する）

「カメラ」を動かし、動くハブの隣をキープするようにする（そうするとハブは静止し、煙が動いているように見える）

さて、これでプログラムに「風」が追加された。PLAYボタンをクリックして、動きを見てみよう。

かなりよくなったのではないだろうか？ 動画で見たらせん状の煙は、「風車の回転」と「風」という2つの条件の組み合わせだということも、これで理解できるだろう。