Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jagot/blender.jl


https://github.com/jagot/blender.jl

Last synced: 6 days ago
JSON representation

Awesome Lists containing this project

README

        

#+TITLE: Blender.jl
#+AUTHOR: Stefanos Carlström
#+EMAIL: [email protected]

[[https://travis-ci.org/jagot/Blender.jl][https://travis-ci.org/jagot/Blender.jl.svg?branch=master]]
[[https://coveralls.io/github/jagot/Blender.jl?branch=master][https://coveralls.io/repos/jagot/Blender.jl/badge.svg?branch=master&service=github]]
[[http://codecov.io/github/jagot/Blender.jl?branch=master][http://codecov.io/github/jagot/Blender.jl/coverage.svg?branch=master]]

* Description
Julia interface to [[https://wiki.blender.org/index.php/User%3aIdeasman42/BlenderAsPyModule][Blender-as-a-Python-module]] (easily installable on
Archlinux [[https://aur.archlinux.org/packages/blender-as-py-module][via Aur]]; note that you typically would have to change your
Python vendor to the system-wide installation, see [[https://github.com/JuliaPy/PyCall.jl#specifying-the-python-version][here for
details]]). Main point is to be able to programmatically render from
Julia and to provide a base layer on top of which a BlenderPlot.jl
package could rest.

* Usage example
#+BEGIN_SRC julia :results output :exports both
using Blender

Blender.render("examples/simple")
#+END_SRC

#+RESULTS:
#+begin_example
Fra:1 Mem:15.95M (0.00M, Peak 15.95M) | Time:00:00.00 | Preparing Scene data
Fra:1 Mem:15.97M (0.00M, Peak 15.97M) | Time:00:00.00 | Preparing Scene data
Fra:1 Mem:15.97M (0.00M, Peak 15.97M) | Time:00:00.00 | Creating Shadowbuffers
Fra:1 Mem:15.97M (0.00M, Peak 15.97M) | Time:00:00.00 | Raytree.. preparing
Fra:1 Mem:15.97M (0.00M, Peak 15.97M) | Time:00:00.00 | Raytree.. building
Fra:1 Mem:15.98M (0.00M, Peak 16.00M) | Time:00:00.00 | Raytree finished
Fra:1 Mem:15.98M (0.00M, Peak 16.00M) | Time:00:00.00 | Creating Environment maps
Fra:1 Mem:15.98M (0.00M, Peak 16.00M) | Time:00:00.00 | Caching Point Densities
Fra:1 Mem:15.98M (0.00M, Peak 16.00M) | Time:00:00.00 | Sce: Scene Ve:8 Fa:6 La:1
Fra:1 Mem:15.98M (0.00M, Peak 16.00M) | Time:00:00.00 | Loading voxel datasets
Fra:1 Mem:15.98M (0.00M, Peak 16.00M) | Time:00:00.00 | Sce: Scene Ve:8 Fa:6 La:1
Fra:1 Mem:15.99M (0.00M, Peak 16.00M) | Time:00:00.00 | Sce: Scene Ve:8 Fa:6 La:1
Fra:1 Mem:15.99M (0.00M, Peak 16.00M) | Time:00:00.00 | Volume preprocessing
Fra:1 Mem:15.99M (0.00M, Peak 16.00M) | Time:00:00.00 | Sce: Scene Ve:8 Fa:6 La:1
Fra:1 Mem:15.99M (0.00M, Peak 16.00M) | Time:00:00.00 | Sce: Scene Ve:8 Fa:6 La:1
Fra:1 Mem:19.36M (0.00M, Peak 19.94M) | Time:00:00.01 | Scene, Part 8-135
Fra:1 Mem:18.97M (0.00M, Peak 19.94M) | Time:00:00.01 | Scene, Part 1-135
.
.
.
Fra:1 Mem:16.61M (0.00M, Peak 20.60M) | Time:00:00.03 | Scene, Part 119-135
Fra:1 Mem:16.31M (0.00M, Peak 20.60M) | Time:00:00.03 | Scene, Part 113-135
Fra:1 Mem:16.22M (0.00M, Peak 20.60M) | Time:00:00.03 | Scene, Part 102-135
Fra:1 Mem:15.75M (0.00M, Peak 20.60M) | Time:00:00.03 | Sce: Scene Ve:8 Fa:6 La:1
Saved: 'examples/simple.png'
Time: 00:00.10 (Saving: 00:00.06)
#+end_example

[[/examples/simple.png]]

* Ideas
- Make use of [[https://github.com/JuliaGeometry][JuliaGeometry]] family of packages.
- Blender can be used to load different mesh formats, but it does
not hurt to be able to use [[https://github.com/JuliaIO/MeshIO.jl][MeshIO.jl]] as well.
- Easily select rendering engine [Blender standard, Cycles
(CPU/GPU), &c.]
- Node materials
- Should be easily saved/loaded
- Open node editor without loading all of Blender?