stl2gif — STLからGIFへ簡易アニメーション変換ツール
概要
stl2gifは、STL形式の3Dモデルを選択すると即座に短いアイソメトリックアニメーションをレンダリングし、GIFとして保存するシンプルで実用的なツールです。スクリプトは「二つの軸について回転するアニメーション」を生成した後に、元に戻るような“undo”演出を挟んでシームレスなループを作ります。インストール不要で手早くモデルの見栄え確認やサムネイル用アニメーションを作る用途に向いており、開発者が「とりあえず動くもの」を目指して作った軽量プロジェクトです。
リポジトリの統計情報
- スター数: 3
- フォーク数: 0
- ウォッチャー数: 3
- コミット数: 10
- ファイル数: 3
- メインの言語: Python
主な特徴
- STLファイルを選択してワンステップでGIFを生成
- アイソメトリック風の視点で二軸回転する短いアニメーションをレンダリング
- アニメーション後に逆再生(undo的な演出)を入れてシームレスにループ
- 軽量で即時プレビュー向け、簡単に試せるワークフロー
技術的なポイント
本リポジトリはPython単一スクリプト(stl2gif.py)で完結するよう設計されており、STL読み込み→フレーム生成→GIFエンコードという流れが基本です。READMEの記述からは、操作は対話的で「実行してSTLファイルを選ぶ」だけで動作することが想定され、ファイル選択ダイアログや簡易GUI/コンソールプロンプトを使っている可能性があります。レンダリングは「アイソメトリック(等角投影)風」の固定カメラを用い、モデル中心を基準に二つの軸(例えばXとY、あるいはXとZ)を連続回転させて各フレームを描画します。滑らかなループにするために、回転の進行に加えて逆向きのフレーム列を付け足す(undo的処理)ことで往復するアニメーションにし、最後にGIF化してループ再生に適した出力としています。
実装上の考慮点としては、STLの三角メッシュを扱うためのライブラリ(numpy-stlやtrimesh等)で頂点情報を取得し、レンダリングはPillowやmatplotlib、あるいは軽量なOpenGLコンテキストを利用して2Dイメージに焼き付ける方法が考えられます。GIF作成はimageioやPillowのsave(options)でパレットやループ設定を行い、色数制限やファイルサイズに注意する必要があります。また、背景透過、アンチエイリアス、解像度やフレーム数のパラメータ化を追加すれば品質とファイルサイズのバランスを改善できます。今はSTL限定ですが、trimeshやassimpバインディングを導入すればOBJ/PLY/GLTFなど他フォーマットのサポート拡張も比較的容易です。
プロジェクトの構成
主要なファイルとディレクトリ:
- README.md: file
- example output.gif: file
- stl2gif.py: file
使い方(README抜粋に基づく)
- スクリプトを実行して、プロンプトでSTLファイルを選択
- 自動でレンダリングが始まり、完了するとGIFが出力される
- 現状はSTL以外のフォーマット対応は未実装(作者は今後の拡張に意欲あり)
作者からの一言(READMEより):
「takes a 3d model in stl and renders a quick isometric animation about two axes then does a crazy undo thing and loops all nice — just run, select .stl file and boom」
開発者支援リンク: https://www.buymeacoffee.com/adamdevmedia
まとめ
手早くSTLをGIFで可視化するための軽量ツール。拡張性が高く実用的。
リポジトリ情報:
- 名前: stl2gif
- 説明: takes a 3d model in stl and renders a quick isometric animation about two axes then does a crazy undo thing and loops all nice
- スター数: 3
- 言語: Python
- URL: https://github.com/adamdevmedia/stl2gif
- オーナー: adamdevmedia
- アバター: https://avatars.githubusercontent.com/u/242954182?v=4