2026年4月17日金曜日

DRACOLoader 点群の圧縮仕様

 

Dracoは、3Dメッシュや点群を圧縮・解凍するためのオープンソースライブラリです。

圧縮されたジオメトリは大幅に小さくなりますが、その代償として、クライアントデバイスでのデコード時間が増えます。

スタンドアロンの Draco ファイルの拡張子は .drc で、頂点の位置や法線、色などのアトリビュートが含まれています。Dracoファイルには、マテリアル、テクスチャ、アニメーション、ノード階層などは含まれていません。これらの機能を使用するには、glTFファイルの中にDracoジオメトリを埋め込みます。通常の glTF ファイルは、glTF-Pipeline を使って Draco で圧縮された glTF ファイルに変換することができます。glTFでドラコを使用する場合、DRACOLoaderのインスタンスがGLTFLoaderの内部で使用されます。

https://threejs.org/docs/#examples/en/loaders/DRACOLoader

https://threejs.org/examples/#webgl_loader_draco

画像

3Dガウス・スプラッティングとdracoは無関係ですか?

「3Dガウス・スプラッティング」と「Draco」との関係について説明します。これら二つは異なるプロセスに関連しており、一般的には直接的な関連はありませんが、3Dデータ処理の異なるステップにおいて用いられることがあります。

  1. 3Dガウス・スプラッティング:

    • 3Dガウス・スプラッティングは、ポイントクラウドデータから3Dモデルを再構築するための技術の一つです。このプロセスでは、各点をガウス関数(正規分布)に基づいてスムージングし、これによってより連続的で滑らかな表面を作成します。この手法は、特に医療画像処理や3Dスキャンデータの処理において有用です。

  2. Draco:

    • Dracoは、Googleによって開発された3Dメッシュデータの圧縮技術です。これは、大量の3Dデータを効率的に送信・保存するために設計されており、ウェブベースのアプリケーションで特に有用です。Dracoはデータの圧縮に特化しており、データの品質を保持しながらファイルサイズを削減します。

これら二つの技術は、3Dデータの異なる側面を扱っています。3Dガウス・スプラッティングはモデルの再構築やスムージングに関連し、Dracoはそのようなデータを圧縮して効率的に扱うことを目的としています。したがって、直接的な関連性はありませんが、3Dデータの処理や配信の異なる段階で使用されることがあります。例えば、3Dガウス・スプラッティングで処理されたデータがDracoによって圧縮される場合などです。

3Dメッシュは点群と同じ意味ですか?

3Dメッシュと点群(ポイントクラウド)は3Dモデリングやコンピューターグラフィックスにおいて使用されるが、その構造と用途において異なります。

  1. 点群(ポイントクラウド):

    • 点群は、空間内の点の集合で、各点は位置情報(通常はX, Y, Z座標)を持っています。これらの点は独立しており、間に明確な接続(エッジ)はありません。点群は、3Dスキャナーから得られるデータや、実世界のオブジェクトやシーンの3Dデジタルキャプチャとしてよく使用されます。

  2. 3Dメッシュ:

    • 3Dメッシュは、点(頂点)、エッジ(頂点間の線)、および面(エッジに囲まれた領域)で構成される、より複雑なデータ構造です。メッシュはこれらの要素を使用して、3D形状の連続的な表面を形成します。3Dメッシュは、ビデオゲーム、映画、建築ビジュアライゼーション、バーチャルリアリティなど、多くのアプリケーションで使用される形式です。

点群と3Dメッシュは互いに補完的な関係にあり、3Dスキャンのデータを点群として取得した後、これをメッシュ化することで、より扱いやすく、視覚的に詳細な3Dモデルを作成することが一般的です。したがって、これらは同じ意味ではなく、異なるタイプの3Dデータ構造として理解されるべきです。

p5.js解説 エントリポイントからsetupが呼び出されるまで グローバルモードとインスタンスモード

 

p5.jsには「グローバルモード」と「インスタンスモード」という二つの異なる使用方法があります。これらはどちらもp5.jsライブラリを使ってクリエイティブなコーディングを行うためのモードですが、それぞれ異なるケースに適しています。

グローバルモード

グローバルモードは、p5.jsの関数や変数がグローバルスコープに配置される方式です。これはp5.jsが最も簡単に使用できるモードであり、特に小規模なプロジェクトや教育的な環境での利用に適しています。

特徴:

  • p5.jsの関数やオブジェクトに対して簡単にアクセス可能。

  • スクリプト全体で一つのp5.jsのインスタンスが自動的に作成される。

  • setup() や draw() などの関数が直接記述され、p5.jsによって自動的に実行される。

このモードでは、すべてのp5.js関連の機能がグローバル名前空間に存在するため、他のJavaScriptライブラリやスクリプトと名前が衝突する可能性があります。

インスタンスモード

インスタンスモードでは、p5.jsの各インスタンスが独立して動作します。これにより、同一のページ上で複数のp5スケッチを同時に実行することができ、それぞれが独立したスコープを持つため、互いに干渉することなく動作します。

特徴:

  • new p5() コンストラクタを使って、新しいp5インスタンスを明示的に作成します。

  • それぞれのインスタンスは、setup() や draw() などの関数を独自のスコープ内で保持し、別々に管理されます。

  • 複数のスケッチをページ上に配置することが可能。

p5.jsでは、setup 関数の呼び出しは window.onload イベントの内部ではなく、p5.jsライブラリが提供する独自の初期化処理によって制御されます。setup 関数がどのようにして呼び出されるかについて具体的な流れを説明します。

p5.jsにおける setup の呼び出し

  1. ライブラリの読み込みと初期化: p5.jsのスクリプトが読み込まれた際に、ライブラリの全体的な初期化が行われます。この初期化には、必要な関数やオブジェクトのセットアップが含まれます。

  2. p5インスタンスの作成: グローバルモードでは、p5.jsは自動的に p5 インスタンスを作成します。このインスタンス化プロセスの一環として、ライブラリはドキュメントの読み込みが完了したかどうかをチェックし、準備が整い次第 setup 関数を実行するようスケジュールします。

  3. 初期化プロセスのトリガー: p5.jsでは、document.readyState プロパティを使用して、ページの読み込み状態をチェックします。ページが完全に読み込まれ (complete 状態) と判断された場合、p5.jsは初期化プロセスをトリガーします。

  4. _setup 関数の呼び出し: p5.jsの内部で、ページが読み込まれた後、_setup という内部関数が呼び出されます。この _setup 関数がユーザーが定義した setup 関数を呼び出す責任を持っています。この過程で、setup 関数内で定義されたキャンバス作成や変数初期化などが実行されます。

  5. draw 関数の連続実行: setup 関数の実行が完了すると、p5.jsは draw 関数が定義されていれば、その関数をフレームごとに呼び出し続けるようになります。

このプロセスにより、p5.jsはユーザーに透明な形で、スムーズなスタートアップと継続的な実行を保証します。基本的に、ユーザーは setup や draw の関数を定義するだけで、背後でどのようにこれらが管理されているかを深く考える必要はありません。これにより、特にビジュアルアートやインタラクティブなプロジェクトを手軽に実現することができます。

setup() 関数は、プログラムの起動時に一度だけ呼び出されます。

setup() 関数は、各プログラムに対して 1 つだけ使用することができ、最初の実行後に再度呼び出されることはありません。

setup() の直後に呼ばれた draw() 関数は、プログラムが停止するか noLoop() が呼ばれるまで、 ブロック内のコード行を継続的に実行します。noLoop() が setup() で呼び出された場合でも、draw() は停止する前に一度だけ実行されることに注意してください。


draw() は自動的に呼び出される


draw() が 1 秒間に実行される回数は frameRate() 関数で制御することができます。

例えば、関数呼び出し frameRate(30) は、1 秒間に 30 回のリフレッシュを試みます。指定したレートを維持するためにプロセッサの速度が十分でない場合、フレームレートは達成されません。フレームレートは setup() 内で設定することを推奨します。

デフォルトのフレームレートは、ディスプレイのフレームレート(ここでは「リフレッシュレート」とも呼ばれます)に基づいており、ほとんどのコンピュータでは毎秒60フレームに設定されています。

24 フレーム/秒 (映画の場合は通常) 以上のフレームレートがあれば、滑らかなアニメーションには十分でしょう。これは setFrameRate(val) と同じです。

スクリーンショット 2020-09-25 4.42.32

LDraw File Format Specification LEGOでメタバース

 レゴ®ブロックやモデルを仮想環境上で表現することは、困難な課題です。1995年、James JessimanはLDrawプログラムとファイルフォーマットで、まさにそのようなシステムを開発しました。それ以来、LDrawファイルフォーマットは、コンピュータ上でLEGO®モデルを作成する際の標準となるまでに成長しました。

このドキュメントの目的は、Jamesのオリジナルのファイル仕様と、それ以降に追加されたものを編集し、統合することです。

LDraw」という用語は、DOSベースのオリジナルLDrawプログラム、LDrawパーツライブラリ、LDrawファイルフォーマット、LDraw System Of Toolsのいずれかを指す言葉として使われます。このように、新しいユーザーにとっては非常にわかりにくいものです。

https://www.ldraw.org/article/104.html

LDrawは無料の「CAD」のようなプログラムのセットで、ユーザーがコンピュータ上で仮想のLEGO®のようなモデルを作成できるようにするものです。実際に作ったモデルを記録したり、レゴのように組み立て説明書を作ったり、バーチャルモデルの3Dフォトリアリスティックな画像をレンダリングしたり、アニメーションを作ったりすることも可能です。

パーツライブラリーは、9500以上のレゴパーツ(2020年2月現在)を収録しており、プログラムの中核をなすものです。私たちが推奨する唯一のブロックはLEGOですが、パーツフォーマットは他のタイプのブロック(MEGA Block、Block-itなど)にも使用できることに注意してください。

LDraw を使い始めるには、少なくとも 2 つのものが必要です。
LDraw パーツライブラリ
エディタ

まず、LDrawパーツライブラリをコンピュータにインストールするところから始めます。ライブラリ全体を入手するには、Latest Parts のダウンロードページに行き、"complete.zip" ファイルをダウンロードするオプションを選択します。(これは一度だけ行う必要があります。後で、より小さい「lcadXXXX.zip」ファイルをダウンロードすることでライブラリを更新することができます)。

画像

macOS用の最新のLDraw編集プログラムはLeonardo ZideのLeoCADです。(Bricksmithと呼ばれる古いmacOSプログラムは、もう積極的にサポートされていません。) インストールするには、ダウンロードページに行き、一番下のボタンをクリックして、macOS用のダウンロードをします。ダウンロードフォルダに表示される.dmgファイルをダブルクリックし、同封のLeoCADアプリをアプリケーションフォルダにドラッグしてください。これで完了です。これで、.dmgファイルを捨て、LeoCADアプリをダブルクリックして開くことができます。


画像
画像
なんか始まる予感だ
画像
画像
画像
画像

2026年4月16日木曜日

シードボールは市民の環境リテラシーを変えるのか

 不安な気候時代に“できること”――

シードボール(seed ball)とは、種を保護し、植え付けの効率を高めるための技術です。シードボールは、種を土や粘土、堆肥などの材料で包んで作ります。この方法は、自然環境での植え付けを容易にし、種の発芽率を向上させる効果があります。

シードボールの作り方は以下の通りです:

  1. 材料を準備する:

    • 粘土

    • 堆肥

  2. 混合する:

    • 粘土と堆肥を3:1の割合で混ぜ合わせます。

    • 種を加えて、さらによく混ぜます。

  3. 成形する:

    • 混合物に少量の水を加え、適度な湿り気を持たせます。

    • 手のひらで小さなボール状に成形します。

  4. 乾燥させる:

    • 作ったボールを日陰で乾燥させます。完全に乾燥するまで数日かかることがあります。

シードボールの主な利点は以下の通りです:

  • 保護効果: 粘土が種を保護し、鳥や虫による被害を減少させます。

  • 発芽率の向上: 堆肥が発芽のための栄養を提供し、土壌環境を改善します。

  • 植え付けの簡便さ: そのまま土壌に撒くだけで植え付けが完了します。

シードボールは、荒れ地の再生や、緑化活動、庭や畑での植え付けに広く利用されています。特に、自然の力を利用して種を育てる方法として、持続可能な農業や園芸の分野で注目されています。

シードボールの技術は、古代から存在していると考えられています。具体的な起源は明確ではありませんが、自然農法の一環としての使用は、20世紀半ばに注目されるようになりました。

この技術を広めた人物の一人として、日本の農業家である福岡正信(1913-2008)が挙げられます。彼は「自然農法」の提唱者であり、その中でシードボール(彼の用語では「土団子」)を用いた技術を実践し、広めました。福岡正信の自然農法は、農薬や肥料を使用せず、自然の力を最大限に利用する持続可能な農業を目指しています。

彼の著書『わら一本の革命』(1975年)では、シードボールの作り方やその効果について詳細に説明されています。この技術は、その後、世界中で関心を集め、エコロジー活動や持続可能な農業の分野で広く採用されています。

Q1. シードボールとは何ですか?

A. 種を粘土と有機物で包み、地面に「投げるだけ」で植生を回復できる手軽なネイチャー・ベースド・ソリューションです。古くは福岡正信の自然農法で再興され、現在は空き地緑化や森林再生に広く応用されています。Wikipedia


Q2. 都市の環境課題とどう結び付いていますか?

A. 国連環境計画(UNEP)は、都市が抱える ①気候変動 ②生物多様性喪失 ③大気汚染 を同時に緩和する手段として“都市自然ベース解決策”を推奨し、その具体例として種子散布・シードボールを挙げています。また、ゲリラガーデニングの活動家は空き地や道路脇で在来種を増やし、ヒートアイランドの緩和やポリネーターの生息地創出に貢献しています。UNEP - UN Environment ProgrammeWikipedia


Q3. 乾燥地や砂漠化地域では役立ちますか?

A. アリゾナ大学の拡張局は、乾燥地の再生・菜園づくりにおける有効手法として「Seed Ball Strategies for Gardening and Restoration in Arid Landscapes」を公開。粘土被覆が風による種子飛散や乾燥を抑え、発芽率と苗定着率を高めると報告しています。UA Cooperative ExtensionUA Cooperative Extension


Q4. テクノロジーでどうスケールアップしていますか?

A.

  • ブラジル・リオ市はスタートアップ MORFO と提携し、急斜面へドローンでネイティブ種シードボールを散布。植林速度を従来比最大 100 倍に向上しました。Reuters

  • オーストラリアの AirSeed Technologies や WWF は、1機で日量 4 万粒を投下できるドローンを森林火災跡地の再生に導入しています。Reuters


Q5. ワークショップや教育現場では?

A.

  • カリフォルニアの NGO Explore Ecology は再生紙を使う「Earth Seed Bombs」教室を常設し、地域の子どもに在来植物と資源循環を教えています。Explore Ecology

  • 米ブリストル・コミュニティカレッジの「Seeds of Sustainability」シリーズではシードボール作りを通じてキャンパスの環境リテラシーを高めています。YouTube

  • Greenpeace の MAKE SMTHNG Week 公式マニュアルにも「Make and throw seed bombs」が掲載され、脱消費型イベントの定番アクティビティになっています。Greenpeace


Q6. 科学的な有効性はありますか?

A. アリゾナ大学の温室実験(2021)は、栄養源に牛糞を配合したシードボールで発芽率が有意に上昇し、種密度が増えるほど総発芽数も向上することを報告。乾燥地再生のベストプラクティスとして設計指針を提示しています。UA Cooperative Extension