カテゴリー
ゲーム

Minecraft HDL – Verilog-HDLからマインクラフト内に論理回路を作るツール

MinecraftHDL は、カナダ・マギル大の学生3人による卒業論文で制作された、ハードウェア記述言語で定義した論理回路をマインクラフト内のレッドストーンを使った「動く」回路に変換するツールセット(digital synthesis flow)です。

レッドストーンは、マインクラフト内で電流を通す電線のように使えるアイテム群のことで、ブロックの組み合わせで電子回路のような論理回路を作ることができます。

サンプルから、以下のVerilog HDLの設計コード


  module sevenseg (
      input I1, I2,
      output S1, S2, S3, S4, S5, S6, S7
  );
  
  assign S1 = ~I2 | I1;
  assign S2 = 1;
  assign S3 = ~I1 | I2;
  assign S4 = ~I2 | I1;
  assign S5 = ~I2;
  assign S6 = ~I1 & ~I2;
  assign S7 = I1;
  
  endmodule

が、こんなレッドストーン回路に変換されるそう。(右側の巨大な7セグメントディスプレイは、出力を見やすく表示するために手動で作成されたものです。)

上記のコードは、2つの入力ビットに対し、入力に応じた7個の出力ビットを出すもので、要は2bitsの値に応じてデジタル数字に必要な7か所の線をオンにするかオフにするかを演算させるものです。

この回路が作動している様子がこちら。

手前の二つのスイッチが上位ビット・下位ビットになっていて、上が0、下が1のようです。二つのスイッチを組み合わせて0-3の値にセットすると、遠くにある巨大ディスプレイがそれに応じた数字を表示していますね。

なんで2bitsなのかというと、0-9まで表示させる回路を作ると大きくなりすぎるから、だそうです。単純な回路以上のものを変換させると、マインクラフト内にロードできるブロック数の上限を超えてしまうということ。

また、現バージョンではフィードバックループを持てないため、メモリやカウンタなどは作れないそうです。

via Hacker News

カテゴリー
ツール

SkyAR – 動画の青空を差し替えられるツール

SkyAR は、動画の青空部分を別の画像や動画に差し替えることができるPython製のツール。

Photoshopの機能で静止画の空を置換する機能というのはあるそうですが、それを動画の各コマに対して行って元のようにつなげあわせてくれるツール、ということですね。

青空のある動画を撮ってきて、自分でも変換してみました。

親方! 空にお城が!

サイトのサンプル動画では、動きのある動画でうまくいってるものも多いのですが、ちょっとカクカクしてますね。僕の動画がスムーズに視線移動してないからだめなのかな。

昨日の日本橋上空

リポジトリについてくる背景画像はこういったもの。もちろんこれらだけでなく任意の画像を指定できるので、青空に大きな顔! とかもできますね。

公式動画は、やはり良い感じになるような動画を使ってます。

via TheNextWeb

カテゴリー
ツール

GitHub Pages で static な短縮URLサイト作成

nelsontky/gh-pages-url-shortener は、GitHub の静的ファイル公開機能 GitHub Pages を使った、短縮URLホスティングです。

clone して自分でもホストしてみました。s.akimoto.jp の DNS が GitHub Pages を指すように設定します。

https://s.akimoto.jp/ (説明用の index.html が開きます)

そして、GitHub issues にタイトルがURLになる issue を投げる

と、 issue 番号⇒URL の転送が実施されます。

https://s.akimoto.jp/1 ( issue のタイトルに書いた別のアドレスへ転送されます)

その動作原理

  1. CNAME で gh-pages ブランチを指させる
  2. (短縮URLのパス)すべては 404.html に渡される
  3. GitHub issues から JSON API でURL転換情報を JavaScript が取得し、(それに従って)転送
  4. 役に立つ?

ということ。なるほど。GitHub issues を、転送用の lookup table として使っているわけですね。この後転送したい短縮URLを増やすのは、issue を発行すればよいということです。更新や削除も同様。面白い事考えるなあ。

# GitHub API の公開アクセスには60回/時間の制限が掛かっているので、実用的には使えないでしょう。

via Hacker News