2022年1月20日木曜日

CryptBunny 〜うさぎ飼い主用のNFTアートコレクション〜 【公式】

 

CryptBunny is an image that covers all the major variations of the rabbit.
CryptBunny は、うさぎの主要バリエーションを網羅した画像です。

If you have a rabbit, please use it as an icon for your SNS🐰
うさぎを飼っている方の SNSのアイコンなどにお使いください🐰

# Description

This is a collection for rabbit owners, presented by Rabbit Pro(※).
うさぎプロ(※) が贈る、うさぎ飼い主のためのコレクションです。

This is a collection of images of the major variations of rabbits that are recognized by the ARBA (American Rabbit Breeders Association).
ARBA "American Rabbit Breeders Association" の公認品種であるうさぎのバリエーションのうち、主要なものを画像化しています。

The collection is limited in number; we are not forcing more variations for the sake of NFT art.
コレクションの数は限定されます。NFTアートのために、無理にバリエーションを増やしているわけではありません

Rabbit Pro🐰Jun Akita - "Rabbit Programmer" who creates the world of rabbits.
うさプロ🐰あきたじゅん 〜うさぎの世界を創る "うさぎプログラマー"


# Note

All of these rabbit images are handmade.
これらうさぎ画像は、すべてハンドメイドです。

Currently, we only have images of the "droopy-eared Holland Lop" as a type of rabbit. We are planning to add "standing eared Netherland Dwarf" in the future.
現在、うさぎの種類として「垂れ耳のホーランドロップ」の画像だけがあります。「立ち耳のネザーランドドワーフ」を今後追加予定です。


# Persistence

The crown and other parts are reproduced in small dots.
小さなドット絵の中で、クラウンやまふまふなども再現しています。


If you like rabbits, you'll know that CryptBunny is made by someone who understands rabbits.
あなたがうさぎ好きであれば、CryptBunny はうさぎを分かっている者が作っているとわかるでしょう。


# Price

The price has been set at a small amount to make it accessible.
価格は、手の届きやすいよう、少額に設定しています。

However, the price will depend on the value of Ethereum, so please check the price on the purchase site.
ただし Ethereum の価値に左右されますので、価格は購入サイト上でご確認ください。

2021年10月29日金曜日

うさぎ専門の飼育日記アプリの Android版が…機能縮小しました…

 たったいま、Androidのうさぎ広場をリリースしました。

iPhone版と同じものです。これで Android/iPhone の足並みがそろいました。

 


というのも、これまでのうさぎ広場は、11/1までに課金処理を直さないと使えなくなると Google から言われていて、でも直すには大掛かりすぎて直せなかったから、iPhone版と同じものをリリースする運びとなりました。

 ・・・つまり、これまで6年にわたって積み重ねた「なでなでで壁紙」や「うさぎカメラ」やその他色々が、消え去ったということになりますが・・・

でもこれまでにいろいろな MVP を試してきた結果、これからの進み方を考えることもできたので、それはそれで無駄な足跡ではなかったのかもしれません。

 

ということで、今後とも、うさぎ広場をよろしくお願いいたします。

 

2021年9月1日水曜日

うさぎ専門の飼育日記アプリ、iPhone版をようやく出せた〜

 

ついに!

iPhone版のうさぎ飼育日記アプリ『うさぎ広場』が出ました〜🎉 

 

 
 
いや〜長かった。
Android版は2015年に出ていたのに、iPhone版は2021年です。その差6年。
あかちゃんだったうちのうさぎもすっかりシニアに。
 
 
Android版はこんな感じ:
 
iPhone版はこんな感じ:
 
 
いやはや、とにかく長かったですね〜ここまで。
ダウンロードはこちらからです〜🙏🙏🙏 http://nextsphere.jp/RabbitApp/
 
 
ちなみに、これを作っている人は、いまは「うさぎプログラマー」などと名乗っています。
あやしい本人写真: 

 

2021年6月10日木曜日

Object capture でうさぎを3Dにする! その5 〜Object capture でうさぎを3Dにしたよ〜

けっきょく M1 の Macbook Air を緊急調達しまして(中古でね; メモリ16GB は中古じゃないと即手に入らない)、実際に Object capture を試してみましたよ。


どんなのができた?

こんなのができました🐰



 

私は 3D も フォトグラメトリ も完全素人なのに、ここまでできるのはすごいですね!

下面がおかしいのは、これはもうしょうがないのかな。ぬいぐるみを一時的に浮かして撮ればなんとかなるのかもしれない。

 

どうやって作った?

写真

このとき、写真を36枚使いました。

 

実は、これより前に白い模造紙で囲った場所に ターンテーブルを置いて ぬいぐるみを回転させながら撮っていったのですが、これがいけなかった。
ぬいぐるみがほぼ単色だから悪いのか、形をなしていないものしかできあがりませんでした。

そこで撮影の配慮を何もせず、ただぬいぐるみを部屋において、周囲を回りながら撮影したものがさきほどの 3Dのモデル画像になります。

※ちなみに、正統な撮影方法はこちらにあります。

 

実行コマンド

HelloPhotogrammetry をコマンドとして実行できるまでの準備については割愛しまして、
HelloPhotogrammetry のコマンドについてです。

OVERVIEW: Reconstructs 3D USDZ model from a folder of images.

USAGE: hello-photogrammetry <input-folder> <output-filename> [--detail <detail>] [--sample-overlap <sample-overlap>] [--sample-ordering <sample-ordering>] [--feature-sensitivity <feature-sensitivity>]

ARGUMENTS:
  <input-folder>          The local input file folder of images.
  <output-filename>       Full path to the USDZ output file.

OPTIONS:
  -d, --detail <detail>   detail {preview, reduced, medium, full, raw}  Detail
                          of output model in terms of mesh size and texture
                          size . (default: nil)
  -l, --sample-overlap <sample-overlap>
                          sampleOverlap {normal, low}  It should be set to
                          `low` if there is low overlap between images captured
                          nearby in space.
  -o, --sample-ordering <sample-ordering>
                          sampleOrdering {unordered, sequential}  Setting to
                          sequential may speed up computation if images are
                          captured in a spatially sequential pattern.
  -f, --feature-sensitivity <feature-sensitivity>
                          featureSensitivity {normal, high}  Set to high if the
                          scanned object does not contain a lot of discernible
                          structures, edges or textures.
  -h, --help              Show help information.


今回、私はこのように実行しました。

 ./HelloPhotogrammetry ~/Desktop/rabbit6 rabbit6_full_normal_seq_normal.usdz -d full -l normal -o sequential -f normal

  • 第1引数
    • 写真が入ったディレクトリのパス
  • 第2引数
    •  生成されるファイル名(拡張子としてかならず .usdz をつけましょう)
  • -d 引数
    • すばやく確認したいときは preview
      そうでないときは full
      だと良さそうです
    • ただし full でも1-数分待てばできあがるので、full 固定でもよいのかも
  • -l 引数
    • 対象の写真をあまり撮影していない場合は low を
      そうでなければ normal のようです
    • この値は検証しがいがありそうな感じです
  •   -o 引数
    • 撮影した写真が比較的順番に並んでいるかをあらわし、順番に撮影したなら sequential
      そうでなければ unordered です
    • ただし処理速度に影響するだけらしいので、撮影した写真のファイル名と順番に一貫性がないなど自身がなければ unordered でよいでしょう
  • -f 引数
    • 対象物の背景等がはっきりしていなければ high にするようです
      背景等がはっきりしていれば normal
    • この値も検証しがいがありそうな感じです


このあたりの引数を変えながら出力される3D結果を見たんですが、まだまだ掴みきれていません。

3D にしたいものを手軽に 3D にするために、今後も検証してゆこうと思っています。


 

< 分身さんこんにちわー🐰



 

 

 

 

2021年6月9日水曜日

Object capture でうさぎを3Dにする! その4 〜Object capture の対応マシン〜

さきほどは対応マシンで悩んでいましたが、WWDC の Object capture のセッションがスマホから見られましたので疑問氷解です。

 

 

対応 Mac の条件は?

・・・と、いうわけで、

  • M1マシンすべて
    • つまり MacBookAir もいける!
    • つまり MacBookPro 13" もいける!
  • VRAM4GB かつ メモリ16GB マシンすべて

が Object capture の対応マシンとなりそうです。

つまりこれは動くっぽい。

 

 

ただしアプリ開発するから メモリ8GB じゃきつい・・・。

どうしようか考える。



続きはこちらです!
https://nextsphere-blog.blogspot.com/2021/06/object-capture-3d-5-object-capture-3d.html

 

Object capture でうさぎを3Dにする! その3 〜Error creating session: cantCreateSession("Native session create failed: CPGReturn(rawValue: -11)")〜

さてさて、WWDC の Object capture のセッションが気になったので早く起きてしまいました。

・・・いまだに見られないのはどういうことなんだろうか・・・?
現在 JST 6/9(水) 6:04。

しょうがないから Apple のフォーラムを当たろう。


 

自分の Mac が対象外だったという衝撃

このエラーの結論が・・・ 

Error creating session: cantCreateSession("Native session create failed: CPGReturn(rawValue: -11)")
Program ended with exit code: 1

・・・こちらにありました。

  • CPGReturn(rawValue: -11) はお使いのハードウェアがサポートされていないことを意味します。これは通常、GPU が必要な機能をサポートしていないことが原因
  •  4GB の VRAM が必要である

 

なんと・・・
余剰の MacBook (Retina, 12-inch, 2017) ではだめだと・・・・ orz

マシンを買えと・・・買えということかっ!!!

メモリを 16GB に増やした MacBook、気に入ってたんだけどな・・・。



・・・というわけで、いまの自分の Mac ではどうにもならないことが判明しました。悲しい。


対応 Mac の条件は?

なにぶんセッションが見られないので、セッションの 2:32 の部分も分からないのだが、これまでに調べた情報だと・・・

  • M1 じゃなくてもよい (Intel CPU でいい)
  • 4GB VRAM が必要らしい

くらいです。

 

VRAM が 4GB って・・・

・・・ということで、ほしかった M1 の MacBookAir は、対応状況がよくわからない。
MacBookPro は持ち歩きたくないから欲しくないが、手に入れるならばなるべく古い 2017年前後のモデルになりそう。

最新情報は次のエントリにて!

 

2021年6月8日火曜日

Object capture でうさぎを3Dにする! その2 〜CreatingAPhotogrammetryCommandLineApp で -11エラー〜

 さてさて、さきほどの続きであります。はたしてうさぎを 3D にできるのか!?

 Xcode13 beta は手に入りましたね?

 

Xcode13 のインストール

はい。Xcode を入れます。
これは言うまでもないのでばっさり手順割愛。

 


 

Apple のサンプルコードの入手

Creating a Photogrammetry Command-Line Appから、ファイルをダウンロードしてきてください。

解凍して、プロジェクトを開きましょう。

 

開いたら、signingまわりをなんとかして・・・

このプロジェクトはコマンドライン引数を取るので、ここから設定します。
第1引数が、3D化したい写真が大量に入ったディレクトリのパス。
第2引数が、3D化した結果のファイル名。

 

・・・ん?
写真が必要なんですね。撮りましょう。

※ちなみに、あとから気がつきましたが
 サンプル写真が、当該プロジェクトの Data/Rock36Images.zip というところにありました。これを使って試せるようです。まぁ、私はこれを使っても -11 エラーでしたけど。。。

 

3Dにしたい対象物の写真を撮る

私が使ったのは iOS14.6 の iPhone X。これで写真を撮ってゆきます。
別に LiDAR とかいらないらしい。

RealityKit オブジェクトの作成では、iPhone や iPad のカメラ、DSLR やミラーレス カメラ、さらにはカメラを搭載したドローンなど、あらゆるデジタル カメラでキャプチャした画像を受け入れます ・・・Google翻訳したこちらより引用

・・・だそうな。

 

具体的な撮り方ですが、
物体の上から、物体を舐め回すように眺めながら撮ってゆきます。

このあたりの正確な作法はこちらにありますが、いまは物体をテキトーに撮っていきます。

必要とするファイルの形式すらもよくわからず、はじめは .JPG で、二回目は .HEIC で撮ってます。これがいいのか悪いのかはよくわかっていない(なぜなら後述のエラーで進まないから)。

今回は、こんな感じで念入りに撮りました。

・・・

撮った写真は、mac にディレクトリを作って移します。
今回は /Users/junakita/Desktop/rabbit2 に置いたので、Xcode で指定した第1引数も /Users/junakita/Desktop/rabbit2 にしてあります。


プロジェクトを実行

さてさて、Xcode に戻って実行すると・・・

変なエラーが出ています。

 Using configuration: Configuration(isObjectMaskingEnabled: true, sampleOverlap: RealityFoundation.PhotogrammetrySession.Configuration.SampleOverlap.normal, sampleOrdering: RealityFoundation.PhotogrammetrySession.Configuration.SampleOrdering.unordered, featureSensitivity: RealityFoundation.PhotogrammetrySession.Configuration.FeatureSensitivity.normal)
2021-06-08 22:36:04.244052+0900 HelloPhotogrammetry[850:21464] Metal API Validation Enabled
Error creating session: cantCreateSession("Native session create failed: CPGReturn(rawValue: -11)")
Program ended with exit code: 1

 

・・・これがちっとも解決しません。

ドキュメントを見ても -11 の意味がわからず、
Twitter を見ても -11 の意味がわからず、
ビルドしてからターミナル経由で呼び出しても変わらず。

 

※ちなみに、このサンプルのコマンドライン引数はこうです

junakita@akitajunnoMacBook bin % ./HelloPhotogrammetry
Error: Missing expected argument '<input-folder>'

OVERVIEW: Reconstructs 3D USDZ model from a folder of images.

USAGE: hello-photogrammetry <input-folder> <output-filename> [--detail <detail>] [--sample-overlap <sample-overlap>] [--sample-ordering <sample-ordering>] [--feature-sensitivity <feature-sensitivity>]

ARGUMENTS:
  <input-folder>          The local input file folder of images.
  <output-filename>       Full path to the USDZ output file.

OPTIONS:
  -d, --detail <detail>   detail {preview, reduced, medium, full, raw}  Detail of output model in terms of mesh size and texture size . (default: nil)
  -l, --sample-overlap <sample-overlap>
                          sampleOverlap {normal, low}  It should be set to `low` if there is low overlap between images captured nearby in space.
  -o, --sample-ordering <sample-ordering>
                          sampleOrdering {unordered, sequential}  Setting to sequential may speed up computation if images are captured in a spatially sequential
                          pattern.
  -f, --feature-sensitivity <feature-sensitivity>
                          featureSensitivity {normal, high}  Set to high if the scanned object does not contain a lot of discernible structures, edges or textures.
  -h, --help              Show help information.

 

 ・・・ということで、きょうはこれで袋小路のままで終わりになりそうな予感です。

 

 

 < はやく 3D にして〜🐰