hirax.net::Keywords::「作ってみました」のブログ



2008-06-11[n年前へ]

PDLSを使ってフォトショップとパワーポイントとエクセルを自由自在に使い倒す 

 「Photoshopプラグイン開発環境(PDLS)再び」で書いたように、Photoshopプラグイン開発環境(PDLS)のモットーは「Photoshopから(その人のレベルに応じて)何でもできる」です。モットーをもう一つ付け足すなら、楽しく遊ぶこともできるし、楽に(画像処理っぽい)仕事もサクサクできる、というものです。

 ……と書いただけではわかりにくいので、「PDLSを使ってフォトショップとパワーポイントとエクセルを使って、画像を三次元的に表示し、断面輝度変化をエクセルで折れ線グラフににし、パワーポイントで資料を作る」というようなデモ動画を作ってみました。それが下に張り付けた動画です。

 Photoshopで画像を鳥瞰図表示したり、ピクセル単位のデータをセル形式で表示してエクセルにコピペしたり、そしてそれをパワーポイントで報告資料にしたり、といった作業がPDLSを使うと簡単にできる、かもしれません。

2008-06-17[n年前へ]

バスト体感モデル「システム同定」用自動振動シミュレータ 

 「粒子法」バスト体感モデルの「システム同定」用自動振動シミュレータを作ってみました。「粒子法」バスト体感シミュレータに対して、縦方向に任意周波数の揺れを強制的に与えたとき(ウィンドーを”そのものズバリ”強制的に揺らし)の振動状態を観察し、バストモデルの「システム同定」が行える!?というわけです。なお、揺らす入力振動周波数は、カーソルの「左」「右」キーで変えることができるようになっています。「右」キーを押していくと振動周波数が速くなり、「右」キーを押していくと逆に振動周波数が遅くなっていきます。

 このアプリケーション、つまり、「粒子法」バスト体感モデルの「システム同定」用自動振動シミュレータを動かした時のようすは、下の動画のようになります。揺らす周波数を変えてみると、バストの揺れが(まるで波が打ち消しあっているかのうように)全然起きない周波数や、あるいは大きく揺れが加速していく共振周波数がある、ということを体感することができる、かもしれません。


2008-07-20[n年前へ]

エクセルでシミュレーション Vol.3 [夏の午後の雷雲の下 編] 

 エクセルでシミュレーション Vol.2 [静電界計算の動画 編]で、「地面と空に浮かぶ雷雲」を含む世界の静電場計算を行うエクセルシートを作ってみました(あくまで2次元ですが)。そこで、前回とは少しだけ違う”いかにも夏らしい”2つの例を計算してみました。

 まず最初の計算は、地面の上に人が立っている状態です。空を見上げると、頭の上には雷雲が広がっていて、いかにも不安を感じている状態です。



 計算結果を見ればわかるように、人体部分に電界が集中していて、すぐにもカミナリに打たれてしまいそうなことがわかります。

 これは怖すぎる……というわけで、人の少し横に避雷針を立ててみたのが、次の例になります。高さのスケールが少し変に見えますが、そこら辺は適当に無視しておいて下さい。とにかく、人の少し横に避雷針を立ててみたわけです。



 すると、今度は避雷針の先には強い電界が集中していますが、人がいる部分ではほとんど電位変化がないことがわかります。ということは、カミナリに打たれる心配もなく(といっても近くに落ちるカミナリはやはり怖いですけれど)安心していられる……ということがわかるわけです。


 そういえば、もう夏ですね。日差しを強く感じる暑い午後に空を見上げると、いつも白い積乱雲が見えます。暑い夏を楽しみつつも、夏バテにはお気をつけください。


夏の雷雲の下の人夏の雷雲の下の人(避雷針付き)






2008-08-02[n年前へ]

画像処理WEBアプリを簡単作成用「ビジュアル言語」を作る 

 「ビジュアル言語」風の画像処理WEBアプリの叩き台を作ってみました。 いえ、正確に言えば、そんな「ビジュアル言語」環境を作ってみました。つまり、画像処理WEBアプリを簡単に作れる!?「ビジュアル言語」を作ってみた、ということになります。

 ここで言う「ビジュアル言語」という言葉には、3つの意味合い・特徴があります。

  1. 処理構造をグラフィカルな部品・ワイヤーで表現・作成すること
  2. 各場所で処理されている「データが見える」こと
  3. 部品・ワイヤーを並べ終わった画面そのものが「アプリケーション」のGUI画面となっていること
 1,2番目の項目だけでなく、この3番目の点を意識しながら作ってみました。といっても、「叩き台」なので、デザインはいかにも開発時用(デバッグ用のデータ構造が見えたりする)など、イマイチな部分はありますが、イメージを掴むことはできるだろう、と思います。

 ブラウザ上の操作感は(UI周りはWireItライブラリを使っていて)YahooPipesを模範にしています。また、処理データ構造は(YahooPipesを意識した)ImagePipesに準拠するようになっていて(つまりある程度緩い規約にもとづいたJSONになっていて)、 「オブジェクト」に対してユーザが何かしたり、あるいは、入力部に他の部品からメッセージを受けた時に、Javascriptでクライアント内部で処理をしたり、あるいは、サーバに対して同期リクエストを送ることで、出力結果を生成し、そして出力ポートの先にある他部品に結果メッセージを送信する、という作りになっています。

 下の動画がその「叩き台」アプリケーションの動作動画です(高解像度画像もここに置いておきます)。この動画が「何をしているか」を箇条書きすると、

  1. 「画像をアップロードするフォームパーツ」を作り(出力はアップロードされた画像情報を示すJSON)
  2. 入力を2出力に分岐する(JavaScriptで書いた)部品を配置し
  3. 入力された(JSONで表現されている)画像を表示する部品を置いて
  4. 部品間をワイヤーをつなぐ
これで、「画像アップロード+いくつかの処理+画像表示」WEBアプリケーションのコード実装や画面設計が終了した……ということになります。というわけで、画像処理WEBアプリを簡単に作れる!?「ビジュアル言語」を作ってみたのです。「画像処理ジェネレータを作るジェネレータ」みたいなものの高機能版を、「ビジュアル言語」で作ってみたわけです。

 WireItがYahooUIライブラリに実装された折にでも、適当にサービスを立ち上げてみたいな、と思っています。

サンプル画面






2008-09-22[n年前へ]

アクティブ・ノイズ・キャンセリング PC を作る 

 「周りの騒音が大きな場所で、集中してPC作業をしたい」と思うことがあります。そんなときに、ふとこんなことを思いつきました。

 PCのマイク入力から環境音を取得して、その逆位相の音をスピーカーから出力したら、PCのごく近くの領域だけは、ノイズ=ゼロの理想的な作業環境が生じるのではないだろうか?
というわけで、アクティブ・ノイズ・キャンセリング PC を作ってみました。やったことはとても簡単、SimuLinkを使って、サウンド入力の逆位相の音をスピーカーから出力するモデルを作ってみたわけです。一言で書けば、サウンド入力×-1の音声をサウンド出力するだけのモデルです。

 1分クッキングで作った「サウンド入力の逆位相の音をスピーカーから出力するモデル」が下中央で、(試しに動かした時の)下左画像はサウンド入力の波形で、下右画像はサウンド出力画像になります。なお、両者ともオートスケールなので、一見するとDCレベルが違っているように見えますが、DCレベルは同じです。(そもそもDC成分はサウンド入出力では無視されますし)

 PC周囲の騒音を逆位相の音波で消せたか・・・というと、その効果は全然わかりませんでした。大雑把な計算では、低音騒音は消せそうな気がしたのですが、1分クッキングのアクティブ・ノイズ・キャンセリング・モデルでは何の効果もありませんでした。・・・というわけで、「アクティブ・ノイズ・キャンセリング PC を作る」という楽しい課題がここに生まれたのです。

アクティブ・ノイズ・キャンセリング・システム








■Powered by yagm.net