読者です 読者をやめる 読者になる 読者になる

openFrameworksでドーム映像制作

[2017/05/18追記]

  • 3つ目の動画で使用している楽曲の使用許可をいただけたので、音ありに変更。
  • その他のスナップショットに追加。

今回は、ドーム状のスクリーンに投影する映像を作った話です。 ドーム映像の業界では、ドームマスターと言われている、円型にレンダリングされた形式の映像を投影しています。 (参考:ORIHALCON Project: 全天周映像(ドーム映像)の作り方)

私がやっていたのは2015年の頃で、openFrameworksを使ってドームマスター形式の映像を作ってました。 以前は、ドームマスター形式の映像はAfterEffectsのプラグインなどで制作されることも多かったみたいですが、 最近では、Unityなどを使って制作することもできるようです。
Unityによるインタラクティブドームコンテンツ作成 | 株式会社オリハルコンテクノロジーズ | ORIHALCON Technologies, Inc.

今やるなら、断然 Unity でやりたいですね!

続きを読む

retryするデコレータ

失敗してもretryするデコレータを書いてたら、頭の体操みたいなコードができました。 機能要件は、試行の最大回数と試行の時間間隔をデコレートするときに指定できるように…

それから、下記のコードはf文字列を使っているので python3.6+です。

from functools import wraps
from time import sleep, time

def retry(count=0, delay=0):
    def _retry(func):
        @wraps(func)
        def wrapper(*args, **kwargs):
            _delay = delay
            _time = time()
            for c in range(count):
                print(f'time: {time()-_time:.1f}')
                success = func(*args, **kwargs)
                if success or c == count-1:
                    break
                sleep(_delay)
                _delay *= delay
            return success
        return wrapper
    return _retry

try_count = 0
@retry(count=3, delay=1.5)
def unstable_func(threshold):
    global try_count
    try_count += 1
    print(f'try count: {try_count}')
    return True if try_count > threshold else False

if __name__ == '__main__':
    print(f'unstable_func is {"succeeded" if unstable_func(3) else "failed"}')
    print()
    print(f'unstable_func is {"succeeded" if unstable_func(3) else "failed"}')

実行結果は

time: 0.0
try count: 1
time: 1.5
try count: 2
time: 3.8
try count: 3
unstable_func is failed

time: 0.0
try count: 4
unstable_func is succeeded

実際に使うときは、ちゃんとしたライブラリを使いましょう!

株式会社はてなに入社しました

株式会社はてなに入社しました

株式会社はてなに入社しました - hitode909の日記

openFrameworksでプロジェクション

f:id:uitspitss:20170314020609j:plain

はじめに

2014年のクリスマス前に、openFrameworksを使って、プロジェクションをやりました。 今更ながら、記事にまとめます。

個人的には、コードも含めて載せたいところですが、 今までコードを載せるための作業をしようとして、公開ができていなかったので、 この記事では、コードは載せずに簡単な解説や製作に使用したaddon、参考にしたページなどを書きたいと思います。 2年ちょっと前に開発したもので、addonなどはもっと適したaddonが出ていることもあったりすると思いますので、 そのあたりは参考程度に読んでいただいた方がよいかもしれません。

続きを読む

ASI120MC-S + Raspberry Pi2 で星空定点撮影

allskyについて

アルデバラン食20170109

以前に書いた記事で載せた動画は、MBAoaCapture というソフトを使って撮影していました。 ASI120MC-Sのフレームレートは、100μsを切ることもあるので、ちょっとした長さの動画でも、すごいデータ量になるので、 ライブビューをしながらタイミングを見計らってシャッターを切っていくほうがデータ容量を圧迫しないで使える気がします。

ただ、この方法は流星群などの長時間の天文現象の撮影や、日常的な星空撮影には少し面倒に感じることも多いはずです。 そう思う人は他にもいるようで、githubに定点撮影用のプログラムがありましたので、それを使ってテスト撮影してみました。

続きを読む

node.js+ScratchX+Digisparkでプログラミング教室をやった

始めに

過去にも似たタイトルの記事を書いています。 過去記事はこの教室で使うプログラムの開発記事になっていました。 今回の記事が一連の開発の締めということになります。

f:id:uitspitss:20170312013219j:plain

続きを読む

3/7高松空港→成田空港

覚えておきたいことなので…

飛行機は高松空港18:45発、成田空港20:05着。

座席は17Aで飛行機の左翼付近。 左の窓を見ると、左翼が見えていた。

飛行機は定刻通りに離陸。 高松空港を飛び立つと北東方向へ飛んで行くようだった。

空港の辺りはもうすっかり暗くなっていて、 滑走路のライトが明るく見えたり、 左翼の上にプリントされている文字が空港の照明の当たり具合によって、見えたり見えなかったりしていた。

飛行機が離陸して高度が上がっていくと、窓の外の空の色が少しずつ明るくなっていく。 日没後のように紺から深いオレンジ色へのグラデーションの空。

そして、左翼の先の少し上に明るい星。 内合前の金星が見えた。

手荷物の中にデジカメがあったのに、クロークに入れてしまっっていたので取り出せず、スマホのシャッター音を気にして画像が取れなかった…

その後は、進路を東の方へ変えたようで、 金星は飛行機の後方の方に行ってしまった。

着陸の30分前くらいから、成田空港に入るために、 飛行機が進路を東から北西方向に変えた。

すると、左翼から前方に4,50度のところに金星が見えた。このくらいの時間になると、金星の高度も大分下がったようで、目線と同じか、それよりも低い位置で見えた。空は、オレンジ色は見えなくなったが、それでも濃い青のあたりのグラデーションが見えた。

窓を覗き見る感じで、少し上の方を見てみると、火星が見えていた。これで、一等星くらいは見えるのだろうと思って、金星や火星が見えていた方向よりも南より、空の高いところを探しても、明るい星が見当たらなかった。たぶん、もっと高い位置に見えているのだと思った。というのも、地上ではとっくに見えなくなっている金星が目線と同じくらいの高さに見えているのだから。

それからも、一等星の星が見えてこないのかなと、時間を置いては確認をしてみたが見えなかった。 ただ、金星と同じ高さくらいに明るい星が見えていた。方向は金星から90度弱南方向。 あれはカノープスだったはず。 今、stellariumで3/7 19:30頃の空を確認すると、金星の高度は約2度、カノープスの高度は1.5度くらい。

明るさは、火星とほぼ同じくらいに見えた。

今回、この飛行機に乗ったのは本当に偶然だった。

  • 金星が内合前だった。宵の明星。
  • 火星が地球の接近の半年以上後だった。接近後はどんどんと夕方空、西の方に見えてくるので。
  • 春先で、カノープスが早めに正中する時期だった。カノープスはオリオン座からほぼ天の南極方向。
  • 離陸前に見れたのは、高松空港発だったからかもしれない。仮に松山空港発だったら、もう少し東寄りに進路を取りそうな気がする。
  • 確か羽田空港着は東京湾を北上していくようなルートだったはずなので、成田空港着だったからカノープスが見れたのかもしれない。
  • 天気がまずまずの晴れだった。

今、考えられるだけでもいくつかの条件が重なっていたようで、ほんとにラッキーだった。

内合前の金星を見るために、夕方のフライトを狙うのは比較的やりやすそうなので、次の機会はちゃんと写真を撮りたい。