summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-06-20 04:28:46 +0000
committerCoprDistGit <infra@openeuler.org>2023-06-20 04:28:46 +0000
commit7d08020502ef9188713b8e9682fc631c79e62976 (patch)
tree458c63f9ff1e58ac9a1fedff6a92d65dc80d1b97
parent6d0d38182ad0b6bb25af875e4491bee5fa825f7c (diff)
automatic import of python-blenderlessopeneuler20.03
-rw-r--r--.gitignore1
-rw-r--r--python-blenderless.spec419
-rw-r--r--sources1
3 files changed, 421 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..46627cb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/blenderless-0.1.8.tar.gz
diff --git a/python-blenderless.spec b/python-blenderless.spec
new file mode 100644
index 0000000..c0fe75b
--- /dev/null
+++ b/python-blenderless.spec
@@ -0,0 +1,419 @@
+%global _empty_manifest_terminate_build 0
+Name: python-blenderless
+Version: 0.1.8
+Release: 1
+Summary: Blenderless is the python package for easy headless rendering using blender.
+License: GPL-3.0-or-later
+URL: https://github.com/oqton/blenderless
+Source0: https://mirrors.aliyun.com/pypi/web/packages/d9/40/729273452d330999ca35e5a4a4c2998b4a0b285fdef61b320c953eec60e9/blenderless-0.1.8.tar.gz
+BuildArch: noarch
+
+Requires: python3-pillow
+Requires: python3-bpy
+Requires: python3-trimesh
+Requires: python3-hydra-core
+Requires: python3-imageio
+Requires: python3-xvfbwrapper
+Requires: python3-click
+Requires: python3-tqdm
+
+%description
+# Blenderless
+
+Blenderless is the Python package for easy headless rendering using Blender.
+
+While Blender is a fantastic open-source 3D modeling software which can be run from the command line, there are still some inconveniences when rendering from a headless server:
+
+ - the blender python interface `bpy` can only be imported a single time,
+ - and, there is no framebuffer for blender to write to.
+
+Furthermore, the `bpy` interface has a steep learning curve.
+
+ This package is meant to overcome these issues in a easy-to-use manner. It does so by first defining the entire scene and only interacting with the `bpy` at render time in a separate thread using a virtual framebuffer.
+
+ Example use cases:
+ - Generating thumbnails or previews from 3D files.
+ - Batch generation of views from 3D files.
+ - Automatic generation of compositions of a set of meshes into a single scene
+ - Converting meshes and labels into .blend files
+ - Export GIF animations of a camera looping around an object.
+
+
+## How to use this
+
+### Resources:
+ - You can find basic examples in the [unit tests](https://github.com/oqton/blenderless/tree/master/tests/test_data).
+ - [Notebook examples](https://github.com/oqton/blenderless/tree/master/notebooks) (point clouds, mesh face colors, ...)
+
+
+### Python module
+
+The blenderless package can be loaded as a module. The main functionality is exposed using the Blenderless class. There is support for Jupyter Notebooks as the images/gifs will be shown as IPython Image objects automatically.
+
+
+```python
+from blenderless import Blenderless
+
+# Set the following property if you want to export the generated blender workspace.
+Blenderless.export_blend_path = 'export.blend'
+
+# Render single STL file
+path_to_foo_png = Blenderless.render('meshpath.stl', dest_path=None, azimuth=45, elevation=30, theta=0)
+
+# Render from config, note that objects and cameras are defined within the YAML config.
+path_to_foo_png = Blenderless.render_from_config('config.yml', dest_path=None)
+
+# Render GIF animation, note that azimuth is defined by number of frames.
+path_to_foo_gif = Blenderless.gif(cls, mesh_path, dest_path=None, elevation=30, theta=0, frames=60, duration=2)
+```
+
+### Command-line interface
+
+Render geometry file to image
+
+```sh
+$ blenderless image foo.stl output.png
+$ blenderless --export-blend-path export.blend image foo.stl output.png # If .blend needs to be exported
+```
+
+Render geometry to gif with a camera looping around an object.
+
+```sh
+$ blenderless gif foo.stl output.gif
+```
+
+The following command rendera a YAML config to an image
+
+```sh
+$ blenderless config scene.yml output.png
+```
+
+### YAML configuration files
+
+More advanced scenes can be defined using a YAML configuration file. In this file objects, cameras, labels, materials and presets can be defined.
+
+Example:
+```yaml
+scene: # See options in blenderless.scene.Scene
+ preset_path: ../../preset.blend
+
+cameras: # See options in blenderless.camera
+ - _target_: blenderless.camera.SphericalCoordinateCamera # Instantiate one camera with following arguments
+ azimuth: 45
+ elevation: 30
+ theta: 0
+ distance: 1
+
+objects: # See blenderless.geometry and blenderless.material
+ - _target_: blenderless.geometry.Mesh # Refers to classes within the blenderless package
+ mesh_path: ../../mesh/3DBenchy.stl # Constructor argument
+ material: # Constructor argument pointing towards another class within the blenderless package
+ _target_: blenderless.material.MaterialFromName
+ material_name: test_material # Link to material name known in present.blend
+
+ - _target_: blenderless.geometry.BlenderLabel
+ label_value: '42'
+```
+
+
+### Export blender file
+
+## Install
+
+```buildoutcfg
+sudo apt-get install xvfb
+pipx install poetry==1.1.5
+make .venv
+```
+
+### Testing
+
+```sh
+make test
+```
+
+
+%package -n python3-blenderless
+Summary: Blenderless is the python package for easy headless rendering using blender.
+Provides: python-blenderless
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-blenderless
+# Blenderless
+
+Blenderless is the Python package for easy headless rendering using Blender.
+
+While Blender is a fantastic open-source 3D modeling software which can be run from the command line, there are still some inconveniences when rendering from a headless server:
+
+ - the blender python interface `bpy` can only be imported a single time,
+ - and, there is no framebuffer for blender to write to.
+
+Furthermore, the `bpy` interface has a steep learning curve.
+
+ This package is meant to overcome these issues in a easy-to-use manner. It does so by first defining the entire scene and only interacting with the `bpy` at render time in a separate thread using a virtual framebuffer.
+
+ Example use cases:
+ - Generating thumbnails or previews from 3D files.
+ - Batch generation of views from 3D files.
+ - Automatic generation of compositions of a set of meshes into a single scene
+ - Converting meshes and labels into .blend files
+ - Export GIF animations of a camera looping around an object.
+
+
+## How to use this
+
+### Resources:
+ - You can find basic examples in the [unit tests](https://github.com/oqton/blenderless/tree/master/tests/test_data).
+ - [Notebook examples](https://github.com/oqton/blenderless/tree/master/notebooks) (point clouds, mesh face colors, ...)
+
+
+### Python module
+
+The blenderless package can be loaded as a module. The main functionality is exposed using the Blenderless class. There is support for Jupyter Notebooks as the images/gifs will be shown as IPython Image objects automatically.
+
+
+```python
+from blenderless import Blenderless
+
+# Set the following property if you want to export the generated blender workspace.
+Blenderless.export_blend_path = 'export.blend'
+
+# Render single STL file
+path_to_foo_png = Blenderless.render('meshpath.stl', dest_path=None, azimuth=45, elevation=30, theta=0)
+
+# Render from config, note that objects and cameras are defined within the YAML config.
+path_to_foo_png = Blenderless.render_from_config('config.yml', dest_path=None)
+
+# Render GIF animation, note that azimuth is defined by number of frames.
+path_to_foo_gif = Blenderless.gif(cls, mesh_path, dest_path=None, elevation=30, theta=0, frames=60, duration=2)
+```
+
+### Command-line interface
+
+Render geometry file to image
+
+```sh
+$ blenderless image foo.stl output.png
+$ blenderless --export-blend-path export.blend image foo.stl output.png # If .blend needs to be exported
+```
+
+Render geometry to gif with a camera looping around an object.
+
+```sh
+$ blenderless gif foo.stl output.gif
+```
+
+The following command rendera a YAML config to an image
+
+```sh
+$ blenderless config scene.yml output.png
+```
+
+### YAML configuration files
+
+More advanced scenes can be defined using a YAML configuration file. In this file objects, cameras, labels, materials and presets can be defined.
+
+Example:
+```yaml
+scene: # See options in blenderless.scene.Scene
+ preset_path: ../../preset.blend
+
+cameras: # See options in blenderless.camera
+ - _target_: blenderless.camera.SphericalCoordinateCamera # Instantiate one camera with following arguments
+ azimuth: 45
+ elevation: 30
+ theta: 0
+ distance: 1
+
+objects: # See blenderless.geometry and blenderless.material
+ - _target_: blenderless.geometry.Mesh # Refers to classes within the blenderless package
+ mesh_path: ../../mesh/3DBenchy.stl # Constructor argument
+ material: # Constructor argument pointing towards another class within the blenderless package
+ _target_: blenderless.material.MaterialFromName
+ material_name: test_material # Link to material name known in present.blend
+
+ - _target_: blenderless.geometry.BlenderLabel
+ label_value: '42'
+```
+
+
+### Export blender file
+
+## Install
+
+```buildoutcfg
+sudo apt-get install xvfb
+pipx install poetry==1.1.5
+make .venv
+```
+
+### Testing
+
+```sh
+make test
+```
+
+
+%package help
+Summary: Development documents and examples for blenderless
+Provides: python3-blenderless-doc
+%description help
+# Blenderless
+
+Blenderless is the Python package for easy headless rendering using Blender.
+
+While Blender is a fantastic open-source 3D modeling software which can be run from the command line, there are still some inconveniences when rendering from a headless server:
+
+ - the blender python interface `bpy` can only be imported a single time,
+ - and, there is no framebuffer for blender to write to.
+
+Furthermore, the `bpy` interface has a steep learning curve.
+
+ This package is meant to overcome these issues in a easy-to-use manner. It does so by first defining the entire scene and only interacting with the `bpy` at render time in a separate thread using a virtual framebuffer.
+
+ Example use cases:
+ - Generating thumbnails or previews from 3D files.
+ - Batch generation of views from 3D files.
+ - Automatic generation of compositions of a set of meshes into a single scene
+ - Converting meshes and labels into .blend files
+ - Export GIF animations of a camera looping around an object.
+
+
+## How to use this
+
+### Resources:
+ - You can find basic examples in the [unit tests](https://github.com/oqton/blenderless/tree/master/tests/test_data).
+ - [Notebook examples](https://github.com/oqton/blenderless/tree/master/notebooks) (point clouds, mesh face colors, ...)
+
+
+### Python module
+
+The blenderless package can be loaded as a module. The main functionality is exposed using the Blenderless class. There is support for Jupyter Notebooks as the images/gifs will be shown as IPython Image objects automatically.
+
+
+```python
+from blenderless import Blenderless
+
+# Set the following property if you want to export the generated blender workspace.
+Blenderless.export_blend_path = 'export.blend'
+
+# Render single STL file
+path_to_foo_png = Blenderless.render('meshpath.stl', dest_path=None, azimuth=45, elevation=30, theta=0)
+
+# Render from config, note that objects and cameras are defined within the YAML config.
+path_to_foo_png = Blenderless.render_from_config('config.yml', dest_path=None)
+
+# Render GIF animation, note that azimuth is defined by number of frames.
+path_to_foo_gif = Blenderless.gif(cls, mesh_path, dest_path=None, elevation=30, theta=0, frames=60, duration=2)
+```
+
+### Command-line interface
+
+Render geometry file to image
+
+```sh
+$ blenderless image foo.stl output.png
+$ blenderless --export-blend-path export.blend image foo.stl output.png # If .blend needs to be exported
+```
+
+Render geometry to gif with a camera looping around an object.
+
+```sh
+$ blenderless gif foo.stl output.gif
+```
+
+The following command rendera a YAML config to an image
+
+```sh
+$ blenderless config scene.yml output.png
+```
+
+### YAML configuration files
+
+More advanced scenes can be defined using a YAML configuration file. In this file objects, cameras, labels, materials and presets can be defined.
+
+Example:
+```yaml
+scene: # See options in blenderless.scene.Scene
+ preset_path: ../../preset.blend
+
+cameras: # See options in blenderless.camera
+ - _target_: blenderless.camera.SphericalCoordinateCamera # Instantiate one camera with following arguments
+ azimuth: 45
+ elevation: 30
+ theta: 0
+ distance: 1
+
+objects: # See blenderless.geometry and blenderless.material
+ - _target_: blenderless.geometry.Mesh # Refers to classes within the blenderless package
+ mesh_path: ../../mesh/3DBenchy.stl # Constructor argument
+ material: # Constructor argument pointing towards another class within the blenderless package
+ _target_: blenderless.material.MaterialFromName
+ material_name: test_material # Link to material name known in present.blend
+
+ - _target_: blenderless.geometry.BlenderLabel
+ label_value: '42'
+```
+
+
+### Export blender file
+
+## Install
+
+```buildoutcfg
+sudo apt-get install xvfb
+pipx install poetry==1.1.5
+make .venv
+```
+
+### Testing
+
+```sh
+make test
+```
+
+
+%prep
+%autosetup -n blenderless-0.1.8
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-blenderless -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 0.1.8-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..0ed6a33
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+ca9969d2be50f51504c23f739b8676ef blenderless-0.1.8.tar.gz