2024-02-21
Apple Vision Pro 用のネイティブアプリ、作ってみました!

公式サンプル「Tracking specific points in world space | Apple Developer Documentation」を日本語化して、モデルを入れ替えただけですが、なかなか楽しい!

オープンデータとして公開している、福井の名物、東尋坊、越前せいこがに、敦賀のアイスクリームと、シークレットとして鯖江の新名物、さばやきを収録!


「ObjectPlacementFukui on GitHub」
オープンソースです!ただ、シミュレーターは空間認識に未対応の様子。


デフォルトアイコンばかり並ぶと分かりづらいので、アイコンを追加しました。Vision Proへのアイコン追加は、左下でプロジェクトに「Assets.xcassets」を追加し、Vision Proのアイコンを追加、フロントに透過PNG、ミドルに不透過の真っ白PNGを1024x1024で作成してドロップすればひとまず表示はされました。


「さばえIT推進フォーラム2024_電脳メガネサミット in Tokyo | Peatix」

2.22、東京にて開催、電脳メガネの未来を語るイベントで体験できます。

2024-02-20
地域情報化アドバイザーとして、和歌山県にて講演!

産官共創ビジネス 〜オープンデータを活用した福井県DX事例〜


AIは、日本語で簡単に扱えるようなったデジタル技術。和歌山県のゆるきゃらを作ってみた例です。


デジタル技術の要、データの信頼性に関する取り組み、日本初のDFFTが熱い!


交流会は、創業者が和歌山県出身、がんこ「お屋敷・和歌山六三園」にて!


おいしい料理と、おいしい和歌山の梅酒!


なんと、IchigoJamを買ってくれていた、工業用水道管理センター所長の中岡さん!


会長の木原さん、ありがとうございました!


がんこ「お屋敷・和歌山六三園」は旧松井家別邸。


株で儲けた松井さんが63才の時に完成したことや、当時の証券番号説もあるとのこと。六三園の有形文化財10景の紹介のYouTubeリンクより。


大阪城の鉄砲狭間石を縦にして使っているのがダイナミック。今度行ったら3Dスキャンしよう。信長の野望で学んだ、和歌山といえば鉄砲隊!


六三園庭園散策のしおり。


只者ではない感じの庭でした。


結構高いところにある、和歌山城!
日本の城オープンデータ「日本の城一覧 - Wikipedia」を元に整理するといいかも。


イルミネーション輝く、和歌山駅にて解散!


元がExcelデータだったり、SJISだったりするのと、ウェブアプリから直接アクセスできない状態だったので、オープンデータを使いやすいよう、GitHubに、UTF-8で、CORS対応のCSVフォーマットに変換して転載。


「和歌山県 南紀熊野ジオパーク見どころ&トイレマップ」

赤はジオパークの見どころ。詳細なトイレデータがあったので、ウォシュレットなど温水洗浄付きトイレを青、そうでないトイレを緑にしています。

2024-02-19
#js 
容量は小さいほど速くなるのでデータ圧縮技術は重要です。動画は連続した画像と音圧データですが、1ドットずつまともに転送しようとすると膨大なデータ量になってしまいます。サクサク動画が見られるのも圧縮技術のおかげです。

データ圧縮には完全に元に戻せる可逆圧縮と、なんとなく戻すことで圧縮率を稼ぐ非可逆圧縮があります。お小遣い帳などの数値データは変わってもらっては困るので可逆圧縮を使い、画像や音声は多少荒くなってもOKな場合非可逆圧縮を使います。


「LZ4 - Extremely fast compression」

圧縮アルゴリズムも進化しており、USDZ生成プロジェクトの過程で見つけた、2011年誕生の高速で圧縮率の高い可逆圧縮アルゴリズムLZ4(LZ4 - Wikipedia)を展開ライブラリをESモジュールとして移植しました。・・・が、バージョンが合わないようでUSDZには使えませんでした。


「code4fukui/LZ4: Lz4 for the browser and Deno」
forked from Benzinga/lz4js
ESモジュール化したので、ブラウザやDenoからサクッと使えます。 import { LZ4 } from "https://code4fukui.github.io/LZ4/LZ4.js"; // Compress 128 bytes of zero. const compressed = LZ4.compress(new Uint8Array(128)); // Decompress. const decompressed = LZ4.decompress(compressed); 残念ながら、USDZファイルのLZ4とマジックナンバーが合わず、デコード失敗。

2024-02-18
ECでサイズを見てもいまいちピントこない。QuestならWebARでOKですが、Vision Proは非対応なので、iOSが対応する3Dモデルフォーマット、USDZファイル表示機能を使うことにしました。 (参考、VRで確認するサイズ感「realbox in VR」 for スマホVR / Oculus Quest / Oculus Go!


Vision Proの中に、幅5cm、高さ10cm、奥行き5cmの箱を置いてみた図。iPhoneのAR表示を使って撮影。


「box usdzmaker」

幅、高さ、奥行きをcmで入力し、縞模様の箱画像をクリックするとAR表示します。Chromeなど非対応のブラウザを使っている場合、"not supported AR view"と表示され、単にUSDZファイルのダウンロードになります。

USDZファイルは非圧縮ZIPファイルで、拡張子をzipに変更すると展開できます。中に入っているUSDCファイルは3Dデータのバイナリ形式です今回はBlenderの初期モデルの箱をバイナリ読み書きライブラリ「BinReader.js / BinWriter.js」を作って、調べて、書き換えたものです。仕様書「USDC File Format Specification」が公開されているので、任意のオブジェクトを生成して呼び出せるようにしていけそうです。


対応していると、3Dモデル表示アプリに遷移し、AR表示を選択できます。Vision Proであれば空間にそのまま置けるので、購入前に事前にサイズ感を調べるなどの用途に便利です。

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS