Skip to main content

Webブラウザ上に点群を描画する python ライブラリ

Project description

cumo

cumoは、Pythonから3D点群をブラウザ上で表示するためのライブラリです。

インストール

$ pip install cumo

ドキュメント

sphinxでドキュメントの生成が可能です。 devcontainer環境を使用することで、ビルド環境を構築することができます。 その中で以下のようにすると、lib/docs/以下にドキュメントが生成されます。

$ cd lib
$ poetry install
$ poetry run sphinx-apidoc --append-syspath -F -o ./docs .

使用例

lib/cumo/__main__.pyは3面図を撮る例です。 lib/以下に適当なPCDファイル(以下の例ではpcl_logo.pcd)を用意して、以下のようにするとpcdファイルを閲覧できます。

$ cd lib
$ poetry run python -m cumo pcl_logo.pcd
open: http://127.0.0.1:8082
setup...
resize window and press custom control button "start"
saved: screenshot_x.png
saved: screenshot_y.png
saved: screenshot_z.png

REPLでの使用も可能です。

$ poetry run python
Python 3.8.7 (default, Apr  9 2022, 21:34:33)
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from cumo import PointCloudViewer
>>> viewer = PointCloudViewer()
>>> viewer.start()
>>> # open localhost:8082 on your browser
>>> with open(filename, "rb") as f:
>>>     b = f.read()
>>>     viewer.send_pointcloud_pcd(b)

cumo開発者向け

大まかな構成

cumoは以下のように、大まかに2つの要素からなります。

  • lib/ : Pythonライブラリ。PointCloudViewerクラスを提供する。クライアントのHTMLを配信し、クライアントとWebSocket通信を行う。
  • client/ : クライアントページ。ライブラリとWebSocket通信を行い、ライブラリからの操作を受け付ける。

これら2つの通信はWebSocketを使用しています。 通信データはProtocol Buffersにより定義されており、それぞれで使われている言語のライブラリが自動で生成されます。

  • protobuf/server.proto: ライブラリからクライアントへ送信されるデータ
  • protobuf/client.proto: クライアントからライブラリへ送信されるデータ

ビルド

devcontainerを使用することで、ビルド環境を構築することができます。 devcontainer環境に入り、下のようにするとlib/dist/以下にtar.gzとwhlファイルが生成されます。 クライアントのHTML等はライブラリに含まれ、tar.gzやwhlファイルの中に格納されます。

$ ./build.sh

テスト

以下のようにするとテスト用のモードでクライアントページを配信することができます。

$ cd client
$ yarn serve

上のようにしてクライアントを配信するサーバを起動した後、ブラウザでクライアントを開きます(大抵の場合自動で開かれます)。 クライアントを開いた後、ライブラリ側を起動するとクライアント側に接続されます。

$ cd lib
$ poetry run python -m cumo pcl_logo.pcd

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cumo-0.33.7.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

cumo-0.33.7-py3-none-any.whl (1.2 MB view details)

Uploaded Python 3

File details

Details for the file cumo-0.33.7.tar.gz.

File metadata

  • Download URL: cumo-0.33.7.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.8.10 Linux/6.8.0-76060800daily20240311-generic

File hashes

Hashes for cumo-0.33.7.tar.gz
Algorithm Hash digest
SHA256 19cb6417418b6f0e80bb8ca9e2fdef9d54222f666428c402017302905e76828a
MD5 63017de944d5da830817e466a25129c3
BLAKE2b-256 40afe2d5faa9b43cfcb5f01c989ce7731f86240d1308d2caac05d281be2772e7

See more details on using hashes here.

File details

Details for the file cumo-0.33.7-py3-none-any.whl.

File metadata

  • Download URL: cumo-0.33.7-py3-none-any.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.8.10 Linux/6.8.0-76060800daily20240311-generic

File hashes

Hashes for cumo-0.33.7-py3-none-any.whl
Algorithm Hash digest
SHA256 da937129790a8c12bf8656f32ac83835fcca06f146c87a54e1af9c278174ea7f
MD5 2cb3e24ea7a155e9118a12fccaca3af2
BLAKE2b-256 bbec8f8892f62a2890fe42cb9547b99851c0e9ba892ee120b5d9c80c52d70d27

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page