get started with python API

Use this forum for general user support and related questions.
Forum rules
Please upload a testscene that allows developers to reproduce the problem, and attach some images.
Post Reply
mick
Posts: 80
Joined: Mon May 21, 2018 7:57 pm

get started with python API

Post by mick »

Hi,

I have the vague impression that LuxCore is what I'm looking for: I need to generate scenes with optical lenses in python, trace them with physical precision, and measure light intensity on a projection surface.

My main problem is finding the necessary documentation to get started.

Do I need BlendLuxCore for this? I guess not. I downloaded LuxCoreRender and LuxCore API SDK for Ubuntu. But what should I do with that extracted directories?

I can run the luxcoreui. But loading any .cnf file fails because it does not find the referenced .scn file despite correct relative path.

pyluxcoredemo.py crashes in late stage with:
Traceback (most recent call last):
File "samples/pyluxcoredemo/pyluxcoredemo.py", line 674, in <module>
main()
File "samples/pyluxcoredemo/pyluxcoredemo.py", line 663, in main
GetOutputTest()
File "samples/pyluxcoredemo/pyluxcoredemo.py", line 245, in GetOutputTest
pyluxcore.ConvertFilmChannelOutput_3xFloat_To_4xUChar(filmWidth, filmHeight,
AttributeError: module 'pyluxcore' has no attribute 'ConvertFilmChannelOutput_3xFloat_To_4xUChar'
[LuxCore][9.335] [GeForce GTX 1080 Ti Intersect] Memory used for OpenCL image pipeline: 13952Kbytes

How can I just start with rendering a single image with a few meshes?

Thx
User avatar
B.Y.O.B.
Developer
Developer
Posts: 4146
Joined: Mon Dec 04, 2017 10:08 pm
Location: Germany
Contact:

Re: get started with python API

Post by B.Y.O.B. »

For your purpose you probably need the same files as BlendLuxCore uses:
https://github.com/LuxCoreRender/BlendL ... master/bin

To get an overview of the available classes/functions in the Python API, you can do the following in the directory where pyluxcore.so is:

Code: Select all

python3
>>> import pyluxcore
>>> help(pyluxcore)
And you get:

Code: Select all

Help on package pyluxcore:

NAME
    pyluxcore - LuxCoreRender Python bindings

DESCRIPTION
    Provides access to the LuxCoreRender API in python

PACKAGE CONTENTS


CLASSES
    Boost.Python.enum(builtins.int)
        FilmOutputType
    Boost.Python.instance(builtins.object)
        Camera
        Film
        Properties
        Property
        RenderConfig
        RenderSession
        RenderState
        Scene
    
    class Camera(Boost.Python.instance)
     |  Method resolution order:
     |      Camera
     |      Boost.Python.instance
     |      builtins.object
     |  
     |  Methods defined here:
     |  
     |  Rotate(...)
     |      Rotate( (Camera)arg1, (float)arg2, (tuple)arg3) -> None
     |  
     |  RotateDown(...)
     |      RotateDown( (Camera)arg1, (float)arg2) -> None
     
[...]
(Or have a look at the Python interface source code: https://github.com/LuxCoreRender/LuxCor ... uxcore.cpp)
mick wrote: Mon May 21, 2018 8:17 pm I can run the luxcoreui. But loading any .cnf file fails because it does not find the referenced .scn file despite correct relative path.
Yes, unfortunately luxcoreui has a weird behaviour, you have to call it exactly from the right directory, it does not search for fallback paths.
It is on the Todo list for things to fix.
mick wrote: Mon May 21, 2018 8:17 pm pyluxcoredemo.py crashes in late stage with:
Thanks for pointing this out.
ConvertFilmChannelOutput_3xFloat_To_4xUChar was a function in the "pyluxcore for Blender" section of pyluxcore.
I have re-structured those conversion functions to fit Blender more closely, I was not aware that they were used somewhere else (they should not be).
I propose that we re-write this conversion function in the general pyluxcore section.
Here is the old source code of the function: https://github.com/LuxCoreRender/LuxCor ... er.cpp#L80
It does not do anything LuxCore specific, just some heavy number crunching that would be too slow to do in Python (but not impossible).

If you only want to save the image to disk, you can also call film.SaveOutputs()

The demos all seem very big and complicated, I'll try to write something small for your use case.
User avatar
B.Y.O.B.
Developer
Developer
Posts: 4146
Joined: Mon Dec 04, 2017 10:08 pm
Location: Germany
Contact:

Re: get started with python API

Post by B.Y.O.B. »

Here is a smaller demo, hope it helps:
https://gist.github.com/Theverat/0707eb ... db2793ab67

Download the Python script and place it in the same folder as pyluxcore and the required libraries (see https://github.com/LuxCoreRender/BlendL ... master/bin).
Then run it with:

Code: Select all

python3 pyluxcore_demo.py
Attachments
The result
The result
mick
Posts: 80
Joined: Mon May 21, 2018 7:57 pm

Re: get started with python API

Post by mick »

Thanks for the quick answer, and above all the sample. It confirms my assumption about the efficient way of working with LuxCore API.

It immediately worked stand-alone. Unfortunately LuxCore seems to be very inflexible about paths which conflicts with other elements of my stack. Anyway I will get around this.

What is blocking me at the moment is that my dev environment is macOS. I found no binary libs for that, and have no experience with making for that environment. It will probably need a lot more than a simple cmake & make.

My execution environment is ubuntu with GPU. So I want to do my experiments and analysis of the API with jupyter lab using a remote kernel on the ubuntu machine. But trying so <import pyluxcore> lets the notebook hang. Actually the IPython kernel dies without any log (not even with debug turned on). The kernel runs the same python virtual environment from the same working directory as the succeeding stand-alone run.

What makes it fail to work with IPython, and how can I overcome?

Thanks
mick
Posts: 80
Joined: Mon May 21, 2018 7:57 pm

Re: get started with python API

Post by mick »

I triggered a crash twice in a python console. But I could not reproduce. When I repeat the same then the import works fine. But the IPython kernel dies every time I do the import.

Code: Select all

>>> import sys
>>> sys.path.append('/home/mick/dev/DLO')
>>> import pyluxcore
*** Error in `/home/mick/dev/.virtualenvs/DLO/bin/python3': free(): invalid pointer: 0x00007f7ac9e8a6a0 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x777e5)[0x7f7acdd447e5]
/lib/x86_64-linux-gnu/libc.so.6(+0x8037a)[0x7f7acdd4d37a]
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x4c)[0x7f7acdd5153c]
/home/mick/dev/DLO/pyluxcore.so(_ZNSt6locale5_Impl16_M_install_facetEPKNS_2idEPKNS_5facetE+0x142)[0x7f7ac9282eb2]
/home/mick/dev/DLO/pyluxcore.so(_ZNSt6locale5_ImplC1Em+0x1e3)[0x7f7ac9274ee3]
/home/mick/dev/DLO/pyluxcore.so(_ZNSt6locale18_S_initialize_onceEv+0x15)[0x7f7ac9275e55]
/lib/x86_64-linux-gnu/libpthread.so.0(+0xea99)[0x7f7ace0a5a99]
/home/mick/dev/DLO/pyluxcore.so(_ZNSt6locale13_S_initializeEv+0x21)[0x7f7ac9275ea1]
/home/mick/dev/DLO/pyluxcore.so(_ZNSt6localeC1Ev+0x13)[0x7f7ac9275ee3]
/home/mick/dev/DLO/pyluxcore.so(_ZNSt8ios_base4InitC2Ev+0xbc)[0x7f7ac9278e1c]
/home/mick/dev/DLO/libembree.so.2(+0x7f55e)[0x7f7ac5f1e55e]
/lib64/ld-linux-x86-64.so.2(+0x106ba)[0x7f7ace2c46ba]
/lib64/ld-linux-x86-64.so.2(+0x107cb)[0x7f7ace2c47cb]
/lib64/ld-linux-x86-64.so.2(+0x158e2)[0x7f7ace2c98e2]
/lib64/ld-linux-x86-64.so.2(+0x10564)[0x7f7ace2c4564]
/lib64/ld-linux-x86-64.so.2(+0x14da9)[0x7f7ace2c8da9]
/lib/x86_64-linux-gnu/libdl.so.2(+0xf09)[0x7f7acdac9f09]
/lib64/ld-linux-x86-64.so.2(+0x10564)[0x7f7ace2c4564]
/lib/x86_64-linux-gnu/libdl.so.2(+0x1571)[0x7f7acdaca571]
/lib/x86_64-linux-gnu/libdl.so.2(dlopen+0x31)[0x7f7acdac9fa1]
/home/mick/dev/.virtualenvs/DLO/bin/python3(_PyImport_FindSharedFuncptr+0x8a)[0x60afda]
/home/mick/dev/.virtualenvs/DLO/bin/python3(_PyImport_LoadDynamicModuleWithSpec+0x12b)[0x60601b]
/home/mick/dev/.virtualenvs/DLO/bin/python3[0x606618]
/home/mick/dev/.virtualenvs/DLO/bin/python3(PyCFunction_Call+0x106)[0x4e9c56]
/home/mick/dev/.virtualenvs/DLO/bin/python3(PyEval_EvalFrameEx+0x6f74)[0x52ad74]
/home/mick/dev/.virtualenvs/DLO/bin/python3[0x52d2e3]
/home/mick/dev/.virtualenvs/DLO/bin/python3(PyEval_EvalFrameEx+0x5532)[0x529332]
/home/mick/dev/.virtualenvs/DLO/bin/python3(PyEval_EvalFrameEx+0x4a14)[0x528814]
/home/mick/dev/.virtualenvs/DLO/bin/python3(PyEval_EvalFrameEx+0x4a14)[0x528814]
/home/mick/dev/.virtualenvs/DLO/bin/python3(PyEval_EvalFrameEx+0x4a14)[0x528814]
/home/mick/dev/.virtualenvs/DLO/bin/python3(PyEval_EvalFrameEx+0x4a14)[0x528814]
/home/mick/dev/.virtualenvs/DLO/bin/python3(PyEval_EvalCodeEx+0x13b)[0x52e12b]
/home/mick/dev/.virtualenvs/DLO/bin/python3[0x4ebcc3]
/home/mick/dev/.virtualenvs/DLO/bin/python3(PyObject_Call+0x47)[0x5b7167]
/home/mick/dev/.virtualenvs/DLO/bin/python3(_PyObject_CallMethodIdObjArgs+0x17a)[0x5b7f8a]
/home/mick/dev/.virtualenvs/DLO/bin/python3(PyImport_ImportModuleLevelObject+0x778)[0x51ba98]
/home/mick/dev/.virtualenvs/DLO/bin/python3[0x5c7688]
/home/mick/dev/.virtualenvs/DLO/bin/python3(PyCFunction_Call+0x77)[0x4e9bc7]
/home/mick/dev/.virtualenvs/DLO/bin/python3(PyObject_Call+0x47)[0x5b7167]
/home/mick/dev/.virtualenvs/DLO/bin/python3(PyEval_CallObjectWithKeywords+0x30)[0x523800]
/home/mick/dev/.virtualenvs/DLO/bin/python3(PyEval_EvalFrameEx+0x31bc)[0x526fbc]
/home/mick/dev/.virtualenvs/DLO/bin/python3[0x52d2e3]
/home/mick/dev/.virtualenvs/DLO/bin/python3(PyEval_EvalCode+0x1f)[0x52dfdf]
/home/mick/dev/.virtualenvs/DLO/bin/python3[0x5fd2c2]
/home/mick/dev/.virtualenvs/DLO/bin/python3(PyRun_InteractiveOneObject+0x2b1)[0x4583cd]
/home/mick/dev/.virtualenvs/DLO/bin/python3(PyRun_InteractiveLoopFlags+0xe8)[0x458576]
/home/mick/dev/.virtualenvs/DLO/bin/python3[0x4585d0]
/home/mick/dev/.virtualenvs/DLO/bin/python3[0x4cf26a]
/home/mick/dev/.virtualenvs/DLO/bin/python3(main+0xe1)[0x4cfe41]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7f7acdced830]
/home/mick/dev/.virtualenvs/DLO/bin/python3(_start+0x29)[0x5d5f29]
======= Memory map: ========
00400000-007a8000 r-xp 00000000 fd:00 10095503                           /home/mick/dev/.virtualenvs/DLO/bin/python3
009a8000-009aa000 r--p 003a8000 fd:00 10095503                           /home/mick/dev/.virtualenvs/DLO/bin/python3
009aa000-00a41000 rw-p 003aa000 fd:00 10095503                           /home/mick/dev/.virtualenvs/DLO/bin/python3
00a41000-00a72000 rw-p 00000000 00:00 0
00b3e000-00fba000 rw-p 00000000 00:00 0                                  [heap]
7f7abc000000-7f7abc021000 rw-p 00000000 00:00 0
7f7abc021000-7f7ac0000000 ---p 00000000 00:00 0
7f7ac2504000-7f7ac2509000 r-xp 00000000 fd:00 270289                     /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0
7f7ac2509000-7f7ac2708000 ---p 00005000 fd:00 270289                     /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0
7f7ac2708000-7f7ac2709000 r--p 00004000 fd:00 270289                     /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0
7f7ac2709000-7f7ac270a000 rw-p 00005000 fd:00 270289                     /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0
7f7ac270a000-7f7ac270c000 r-xp 00000000 fd:00 270278                     /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0
7f7ac270c000-7f7ac290c000 ---p 00002000 fd:00 270278                     /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0
7f7ac290c000-7f7ac290d000 r--p 00002000 fd:00 270278                     /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0
7f7ac290d000-7f7ac290e000 rw-p 00003000 fd:00 270278                     /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0
7f7ac290e000-7f7ac292f000 r-xp 00000000 fd:00 271696                     /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0
7f7ac292f000-7f7ac2b2e000 ---p 00021000 fd:00 271696                     /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0
7f7ac2b2e000-7f7ac2b2f000 r--p 00020000 fd:00 271696                     /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0
7f7ac2b2f000-7f7ac2b30000 rw-p 00021000 fd:00 271696                     /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0
7f7ac2b30000-7f7ac2b41000 r-xp 00000000 fd:00 270291                     /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0
7f7ac2b41000-7f7ac2d40000 ---p 00011000 fd:00 270291                     /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0
7f7ac2d40000-7f7ac2d41000 r--p 00010000 fd:00 270291                     /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0
7f7ac2d41000-7f7ac2d42000 rw-p 00011000 fd:00 270291                     /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0
7f7ac2d42000-7f7ac2e77000 r-xp 00000000 fd:00 270274                     /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0
7f7ac2e77000-7f7ac3077000 ---p 00135000 fd:00 270274                     /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0
7f7ac3077000-7f7ac3078000 r--p 00135000 fd:00 270274                     /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0
7f7ac3078000-7f7ac307c000 rw-p 00136000 fd:00 270274                     /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0
7f7ac307c000-7f7ac449a000 r-xp 00000000 fd:00 263963                     /usr/lib/nvidia-390/libnvidia-glcore.so.390.30
7f7ac449a000-7f7ac44bb000 rwxp 0141e000 fd:00 263963                     /usr/lib/nvidia-390/libnvidia-glcore.so.390.30
7f7ac44bb000-7f7ac48f0000 r-xp 0143f000 fd:00 263963                     /usr/lib/nvidia-390/libnvidia-glcore.so.390.30
7f7ac48f0000-7f7ac4af0000 ---p 01874000 fd:00 263963                     /usr/lib/nvidia-390/libnvidia-glcore.so.390.30
7f7ac4af0000-7f7ac4e63000 rw-p 01874000 fd:00 263963                     /usr/lib/nvidia-390/libnvidia-glcore.so.390.30
7f7ac4e63000-7f7ac4e7c000 rw-p 00000000 00:00 0
7f7ac4e7c000-7f7ac4e7f000 r-xp 00000000 fd:00 263949                     /usr/lib/nvidia-390/tls/libnvidia-tls.so.390.30
7f7ac4e7f000-7f7ac507f000 ---p 00003000 fd:00 263949                     /usr/lib/nvidia-390/tls/libnvidia-tls.so.390.30
7f7ac507f000-7f7ac5080000 rw-p 00003000 fd:00 263949                     /usr/lib/nvidia-390/tls/libnvidia-tls.so.390.30
7f7ac5080000-7f7ac5087000 r-xp 00000000 fd:00 13631769                   /lib/x86_64-linux-gnu/librt-2.23.so
7f7ac5087000-7f7ac5286000 ---p 00007000 fd:00 13631769                   /lib/x86_64-linux-gnu/librt-2.23.so
7f7ac5286000-7f7ac5287000 r--p 00006000 fd:00 13631769                   /lib/x86_64-linux-gnu/librt-2.23.so
7f7ac5287000-7f7ac5288000 rw-p 00007000 fd:00 13631769                   /lib/x86_64-linux-gnu/librt-2.23.so
7f7ac5288000-7f7ac52b8000 r-xp 00000000 fd:00 10096331                   /home/mick/dev/DLO/libtbbmalloc.so.2
7f7ac52b8000-7f7ac54b8000 ---p 00030000 fd:00 10096331                   /home/mick/dev/DLO/libtbbmalloc.so.2
7f7ac54b8000-7f7ac54b9000 r--p 00030000 fd:00 10096331                   /home/mick/dev/DLO/libtbbmalloc.so.2
7f7ac54b9000-7f7ac54bc000 rw-p 00031000 fd:00 10096331                   /home/mick/dev/DLO/libtbbmalloc.so.2
7f7ac54bc000-7f7ac54df000 rw-p 00000000 00:00 0
7f7ac54df000-7f7ac5500000 r-xp 00000000 fd:00 262368                     /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0
7f7ac5500000-7f7ac56ff000 ---p 00021000 fd:00 262368                     /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0
7f7ac56ff000-7f7ac5700000 r--p 00020000 fd:00 262368                     /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0
7f7ac5700000-7f7ac5701000 rw-p 00021000 fd:00 262368                     /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0
7f7ac5701000-7f7ac5706000 r-xp 00000000 fd:00 401668                     /usr/local/cuda-9.0/targets/x86_64-linux/lib/libOpenCL.so.1.0.0
7f7ac5706000-7f7ac5905000 ---p 00005000 fd:00 401668                     /usr/local/cuda-9.0/targets/x86_64-linux/lib/libOpenCL.so.1.0.0
7f7ac5905000-7f7ac5907000 rw-p 00004000 fd:00 401668                     /usr/local/cuda-9.0/targets/x86_64-linux/lib/libOpenCL.so.1.0.0
7f7ac5907000-7f7ac59d0000 r-xp 00000000 fd:00 263965                     /usr/lib/nvidia-390/libGL.so.390.30
7f7ac59d0000-7f7ac5a04000 rwxp 000c9000 fd:00 263965                     /usr/lib/nvidia-390/libGL.so.390.30
7f7ac5a04000-7f7ac5a18000 r-xp 000fd000 fd:00 263965                     /usr/lib/nvidia-390/libGL.so.390.30
7f7ac5a18000-7f7ac5c18000 ---p 00111000 fd:00 263965                     /usr/lib/nvidia-390/libGL.so.390.30
7f7ac5c18000-7f7ac5c3d000 rw-p 00111000 fd:00 263965                     /usr/lib/nvidia-390/libGL.so.390.30
7f7ac5c3d000-7f7ac5c44000 rw-p 00000000 00:00 0
7f7ac5c44000-7f7ac5c98000 r-xp 00000000 fd:00 10096330                   /home/mick/dev/DLO/libtbb.so.2
7f7ac5c98000-7f7ac5e98000 ---p 00054000 fd:00 10096330                   /home/mick/dev/DLO/libtbb.so.2
7f7ac5e98000-7f7ac5e99000 r--p 00054000 fd:00 10096330                   /home/mick/dev/DLO/libtbb.so.2
7f7ac5e99000-7f7ac5e9d000 rw-p 00055000 fd:00 10096330                   /home/mick/dev/DLO/libtbb.so.2
7f7ac5e9d000-7f7ac5e9f000 rw-p 00000000 00:00 0
7f7ac5e9f000-7f7ac81b2000 r-xp 00000000 fd:00 10096329                   /home/mick/dev/DLO/libembree.so.2
7f7ac81b2000-7f7ac83b2000 ---p 02313000 fd:00 10096329                   /home/mick/dev/DLO/libembree.so.2
7f7ac83b2000-7f7ac83b4000 r--p 02313000 fd:00 10096329                   /home/mick/dev/DLO/libembree.so.2
7f7ac83b4000-7f7ac83e2000 rw-p 02315000 fd:00 10096329                   /home/mick/dev/DLO/libembree.so.2
7f7ac83e2000-7f7ac83fd000 rw-p 00000000 00:00 0
7f7ac83fd000-7f7ac9a3a000 r-xp 00000000 fd:00 10096333                   /home/mick/dev/DLO/pyluxcore.so
7f7ac9a3a000-7f7ac9c3a000 ---p 0163d000 fd:00 10096333                   /home/mick/dev/DLO/pyluxcore.so
7f7ac9c3a000-7f7ac9cb9000 r--p 0163d000 fd:00 10096333                   /home/mick/dev/DLO/pyluxcore.so
7f7ac9cb9000-7f7ac9e11000 rw-p 016bc000 fd:00 10096333                   /home/mick/dev/DLO/pyluxcore.so
7f7ac9e11000-7f7ac9f0c000 rw-p 00000000 00:00 0
7f7ac9f0c000-7f7ac9f23000 r-xp 00000000 fd:00 271080                     /usr/lib/x86_64-linux-gnu/liblz4.so.1.7.1
7f7ac9f23000-7f7aca122000 ---p 00017000 fd:00 271080                     /usr/lib/x86_64-linux-gnu/liblz4.so.1.7.1
7f7aca122000-7f7aca123000 r--p 00016000 fd:00 271080                     /usr/lib/x86_64-linux-gnu/liblz4.so.1.7.1
7f7aca123000-7f7aca124000 rw-p 00017000 fd:00 271080                     /usr/lib/x86_64-linux-gnu/liblz4.so.1.7.1
7f7aca124000-7f7aca13b000 r-xp 00000000 fd:00 13631755                   /lib/x86_64-linux-gnu/libresolv-2.23.so
7f7aca13b000-7f7aca33b000 ---p 00017000 fd:00 13631755                   /lib/x86_64-linux-gnu/libresolv-2.23.so
7f7aca33b000-7f7aca33c000 r--p 00017000 fd:00 13631755                   /lib/x86_64-linux-gnu/libresolv-2.23.so
7f7aca33c000-7f7aca33d000 rw-p 00018000 fd:00 13631755                   /lib/x86_64-linux-gnu/libresolv-2.23.so
7f7aca33d000-7f7aca33f000 rw-p 00000000 00:00 0
7f7aca33f000-7f7aca355000 r-xp 00000000 fd:00 13636096                   /lib/x86_64-linux-gnu/libgcc_s.so.1
7f7aca355000-7f7aca554000 ---p 00016000 fd:00 13636096                   /lib/x86_64-linux-gnu/libgcc_s.so.1
7f7aca554000-7f7aca555000 rw-p 00015000 fd:00 13636096                   /lib/x86_64-linux-gnu/libgcc_s.so.1
7f7aca555000-7f7aca6c7000 r-xp 00000000 fd:00 264200                     /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
7f7aca6c7000-7f7aca8c7000 ---p 00172000 fd:00 264200                     /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
7f7aca8c7000-7f7aca8d1000 r--p 00172000 fd:00 264200                     /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
7f7aca8d1000-7f7aca8d3000 rw-p 0017c000 fd:00 264200                     /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
7f7aca8d3000-7f7aca8d7000 rw-p 00000000 00:00 0
7f7aca8d7000-7f7acaa45000 r-xp 00000000 fd:00 262269                     /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0
7f7acaa45000-7f7acac45000 ---p 0016e000 fd:00 262269                     /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0
7f7acac45000-7f7acac4b000 r--p 0016e000 fd:00 262269                     /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0
7f7acac4b000-7f7acac4c000 rw-p 00174000 fd:00 262269                     /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0
7f7acac4c000-7f7acac90000 r-xp 00000000 fd:00 263377                     /usr/lib/python3/dist-packages/apt_pkg.cpython-35m-x86_64-linux-gnu.so
7f7acac90000-7f7acae90000 ---p 00044000 fd:00 263377                     /usr/lib/python3/dist-packages/apt_pkg.cpython-35m-x86_64-linux-gnu.so
7f7acae90000-7f7acae91000 r--p 00044000 fd:00 263377                     /usr/lib/python3/dist-packages/apt_pkg.cpython-35m-x86_64-linux-gnu.so
7f7acae91000-7f7acae99000 rw-p 00045000 fd:00 263377                     /usr/lib/python3/dist-packages/apt_pkg.cpython-35m-x86_64-linux-gnu.so
7f7acae99000-7f7acaeaa000 r-xp 00000000 fd:00 531028                     /usr/lib/python3.5/lib-dynload/_json.cpython-35m-x86_64-linux-gnu.so
7f7acaeaa000-7f7acb0a9000 ---p 00011000 fd:00 531028                     /usr/lib/python3.5/lib-dynload/_json.cpython-35m-x86_64-linux-gnu.so
7f7acb0a9000-7f7acb0aa000 r--p 00010000 fd:00 531028                     /usr/lib/python3.5/lib-dynload/_json.cpython-35m-x86_64-linux-gnu.so
7f7acb0aa000-7f7acb0ab000 rw-p 00011000 fd:00 531028                     /usr/lib/python3.5/lib-dynload/_json.cpython-35m-x86_64-linux-gnu.so
7f7acb0ab000-7f7acb0eb000 rw-p 00000000 00:00 0
7f7acb0eb000-7f7acb149000 r-xp 00000000 fd:00 13631725                   /lib/x86_64-linux-gnu/libssl.so.1.0.0
7f7acb149000-7f7acb349000 ---p 0005e000 fd:00 13631725                   /lib/x86_64-linux-gnu/libssl.so.1.0.0
7f7acb349000-7f7acb34d000 r--p 0005e000 fd:00 13631725                   /lib/x86_64-linux-gnu/libssl.so.1.0.0
7f7acb34d000-7f7acb354000 rw-p 00062000 fd:00 13631725                   /lib/x86_64-linux-gnu/libssl.so.1.0.0
7f7acb354000-7f7acb36b000 r-xp 00000000 fd:00 525080                     /usr/lib/python3.5/lib-dynload/_ssl.cpython-35m-x86_64-linux-gnu.so
7f7acb36b000-7f7acb56b000 ---p 00017000 fd:00 525080                     /usr/lib/python3.5/lib-dynload/_ssl.cpython-35m-x86_64-linux-gnu.so
7f7acb56b000-7f7acb56c000 r--p 00017000 fd:00 525080                     /usr/lib/python3.5/lib-dynload/_ssl.cpython-35m-x86_64-linux-gnu.so
7f7acb56c000-7f7acb571000 rw-p 00018000 fd:00 525080                     /usr/lib/python3.5/lib-dynload/_ssl.cpython-35m-x86_64-linux-gnu.so
7f7acb571000-7f7acb771000 rw-p 00000000 00:00 0
7f7acb771000-7f7acb98b000 r-xp 00000000 fd:00 13631866                   /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
7f7acb98b000-7f7acbb8a000 ---p 0021a000 fd:00 13631866                   /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
7f7acbb8a000-7f7acbba6000 r--p 00219000 fd:00 13631866                   /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
7f7acbba6000-7f7acbbb2000 rw-p 00235000 fd:00 13631866                   /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
7f7acbbb2000-7f7acbbb5000 rw-p 00000000 00:00 0
7f7acbbb5000-7f7acbbba000 r-xp 00000000 fd:00 525086                     /usr/lib/python3.5/lib-dynload/_hashlib.cpython-35m-x86_64-linux-gnu.so
7f7acbbba000-7f7acbdba000 ---p 00005000 fd:00 525086                     /usr/lib/python3.5/lib-dynload/_hashlib.cpython-35m-x86_64-linux-gnu.so
7f7acbdba000-7f7acbdbb000 r--p 00005000 fd:00 525086                     /usr/lib/python3.5/lib-dynload/_hashlib.cpython-35m-x86_64-linux-gnu.so
7f7acbdbb000-7f7acbdbc000 rw-p 00006000 fd:00 525086                     /usr/lib/python3.5/lib-dynload/_hashlib.cpython-35m-x86_64-linux-gnu.so
7f7acbdbc000-7f7acbe1d000 rw-p 00000000 00:00 0
7f7acbe1d000-7f7acbe3e000 r-xp 00000000 fd:00 13636125                   /lib/x86_64-linux-gnu/liblzma.so.5.0.0
7f7acbe3e000-7f7acc03d000 ---p 00021000 fd:00 13636125                   /lib/x86_64-linux-gnu/liblzma.so.5.0.0
7f7acc03d000-7f7acc03e000 r--p 00020000 fd:00 13636125                   /lib/x86_64-linux-gnu/liblzma.so.5.0.0
7f7acc03e000-7f7acc03f000 rw-p 00021000 fd:00 13636125                   /lib/x86_64-linux-gnu/liblzma.so.5.0.0
7f7acc03f000-7f7acc046000 r-xp 00000000 fd:00 531030                     /usr/lib/python3.5/lib-dynload/_lzma.cpython-35m-x86_64-linux-gnu.so
7f7acc046000-7f7acc245000 ---p 00007000 fd:00 531030                     /usr/lib/python3.5/lib-dynload/_lzma.cpython-35m-x86_64-linux-gnu.so
7f7acc245000-7f7acc246000 r--p 00006000 fd:00 531030                     /usr/lib/python3.5/lib-dynload/_lzma.cpython-35m-x86_64-linux-gnu.so
7f7acc246000-7f7acc248000 rw-p 00007000 fd:00 531030                     /usr/lib/python3.5/lib-dynload/_lzma.cpython-35m-x86_64-linux-gnu.so
7f7acc248000-7f7acc257000 r-xp 00000000 fd:00 13636057                   /lib/x86_64-linux-gnu/libbz2.so.1.0.4
7f7acc257000-7f7acc456000 ---p 0000f000 fd:00 13636057                   /lib/x86_64-linux-gnu/libbz2.so.1.0.4
7f7acc456000-7f7acc457000 r--p 0000e000 fd:00 13636057                   /lib/x86_64-linux-gnu/libbz2.so.1.0.4
7f7acc457000-7f7acc458000 rw-p 0000f000 fd:00 13636057                   /lib/x86_64-linux-gnu/libbz2.so.1.0.4
7f7acc458000-7f7acc45c000 r-xp 00000000 fd:00 531021                     /usr/lib/python3.5/lib-dynload/_bz2.cpython-35m-x86_64-linux-gnu.so
7f7acc45c000-7f7acc65b000 ---p 00004000 fd:00 531021                     /usr/lib/python3.5/lib-dynload/_bz2.cpython-35m-x86_64-linux-gnu.so
7f7acc65b000-7f7acc65c000 r--p 00003000 fd:00 531021                     /usr/lib/python3.5/lib-dynload/_bz2.cpython-35m-x86_64-linux-gnu.so
7f7acc65c000-7f7acc65d000 rw-p 00004000 fd:00 531021                     /usr/lib/python3.5/lib-dynload/_bz2.cpython-35m-x86_64-linux-gnu.so
7f7acc65d000-7f7acc75d000 rw-p 00000000 00:00 0
7f7acc75d000-7f7acc782000 r-xp 00000000 fd:00 13636230                   /lib/x86_64-linux-gnu/libtinfo.so.5.9
7f7acc782000-7f7acc981000 ---p 00025000 fd:00 13636230                   /lib/x86_64-linux-gnu/libtinfo.so.5.9
7f7acc981000-7f7acc985000 r--p 00024000 fd:00 13636230                   /lib/x86_64-linux-gnu/libtinfo.so.5.9
7f7acc985000-7f7acc986000 rw-p 00028000 fd:00 13636230                   /lib/x86_64-linux-gnu/libtinfo.so.5.9
7f7acc986000-7f7acc9c3000 r-xp 00000000 fd:00 13636209                   /lib/x86_64-linux-gnu/libreadline.so.6.3
7f7acc9c3000-7f7accbc3000 ---p 0003d000 fd:00 13636209                   /lib/x86_64-linux-gnu/libreadline.so.6.3
7f7accbc3000-7f7accbc5000 r--p 0003d000 fd:00 13636209                   /lib/x86_64-linux-gnu/libreadline.so.6.3
7f7accbc5000-7f7accbcb000 rw-p 0003f000 fd:00 13636209                   /lib/x86_64-linux-gnu/libreadline.so.6.3
7f7accbcb000-7f7accbcc000 rw-p 00000000 00:00 0
7f7accbcc000-7f7accbd2000 r-xp 00000000 fd:00 531016                     /usr/lib/python3.5/lib-dynload/readline.cpython-35m-x86_64-linux-gnu.so
7f7accbd2000-7f7accdd1000 ---p 00006000 fd:00 531016                     /usr/lib/python3.5/lib-dynload/readline.cpython-35m-x86_64-linux-gnu.so
7f7accdd1000-7f7accdd2000 r--p 00005000 fd:00 531016                     /usr/lib/python3.5/lib-dynload/readline.cpython-35m-x86_64-linux-gnu.so
7f7accdd2000-7f7accdd4000 rw-p 00006000 fd:00 531016                     /usr/lib/python3.5/lib-dynload/readline.cpython-35m-x86_64-linux-gnu.so
7f7accdd4000-7f7acce54000 rw-p 00000000 00:00 0
7f7acce54000-7f7acd17a000 r--p 00000000 fd:00 264467                     /usr/lib/locale/locale-archive
7f7acd17a000-7f7acd282000 r-xp 00000000 fd:00 13631493                   /lib/x86_64-linux-gnu/libm-2.23.so
7f7acd282000-7f7acd481000 ---p 00108000 fd:00 13631493                   /lib/x86_64-linux-gnu/libm-2.23.so
7f7acd481000-7f7acd482000 r--p 00107000 fd:00 13631493                   /lib/x86_64-linux-gnu/libm-2.23.so
7f7acd482000-7f7acd483000 rw-p 00108000 fd:00 13631493                   /lib/x86_64-linux-gnu/libm-2.23.so
7f7acd483000-7f7acd49c000 r-xp 00000000 fd:00 13636249                   /lib/x86_64-linux-gnu/libz.so.1.2.8
7f7acd49c000-7f7acd69b000 ---p 00019000 fd:00 13636249                   /lib/x86_64-linux-gnu/libz.so.1.2.8
7f7acd69b000-7f7acd69c000 r--p 00018000 fd:00 13636249                   /lib/x86_64-linux-gnu/libz.so.1.2.8
7f7acd69c000-7f7acd69d000 rw-p 00019000 fd:00 13636249                   /lib/x86_64-linux-gnu/libz.so.1.2.8
7f7acd69d000-7f7acd6c3000 r-xp 00000000 fd:00 13636089                   /lib/x86_64-linux-gnu/libexpat.so.1.6.0
7f7acd6c3000-7f7acd8c3000 ---p 00026000 fd:00 13636089                   /lib/x86_64-linux-gnu/libexpat.so.1.6.0
7f7acd8c3000-7f7acd8c5000 r--p 00026000 fd:00 13636089                   /lib/x86_64-linux-gnu/libexpat.so.1.6.0
7f7acd8c5000-7f7acd8c6000 rw-p 00028000 fd:00 13636089                   /lib/x86_64-linux-gnu/libexpat.so.1.6.0
7f7acd8c6000-7f7acd8c8000 r-xp 00000000 fd:00 13631758                   /lib/x86_64-linux-gnu/libutil-2.23.so
7f7acd8c8000-7f7acdac7000 ---p 00002000 fd:00 13631758                   /lib/x86_64-linux-gnu/libutil-2.23.so
7f7acdac7000-7f7acdac8000 r--p 00001000 fd:00 13631758                   /lib/x86_64-linux-gnu/libutil-2.23.so
7f7acdac8000-7f7acdac9000 rw-p 00002000 fd:00 13631758                   /lib/x86_64-linux-gnu/libutil-2.23.so
7f7acdac9000-7f7acdacc000 r-xp 00000000 fd:00 13631753                   /lib/x86_64-linux-gnu/libdl-2.23.so
7f7acdacc000-7f7acdccb000 ---p 00003000 fd:00 13631753                   /lib/x86_64-linux-gnu/libdl-2.23.so
7f7acdccb000-7f7acdccc000 r--p 00002000 fd:00 13631753                   /lib/x86_64-linux-gnu/libdl-2.23.so
7f7acdccc000-7f7acdccd000 rw-p 00003000 fd:00 13631753                   /lib/x86_64-linux-gnu/libdl-2.23.so
7f7acdccd000-7f7acde8d000 r-xp 00000000 fd:00 13631751                   /lib/x86_64-linux-gnu/libc-2.23.so
7f7acde8d000-7f7ace08d000 ---p 001c0000 fd:00 13631751                   /lib/x86_64-linux-gnu/libc-2.23.so
7f7ace08d000-7f7ace091000 r--p 001c0000 fd:00 13631751                   /lib/x86_64-linux-gnu/libc-2.23.so
7f7ace091000-7f7ace093000 rw-p 001c4000 fd:00 13631751                   /lib/x86_64-linux-gnu/libc-2.23.so
7f7ace093000-7f7ace097000 rw-p 00000000 00:00 0
7f7ace097000-7f7ace0af000 r-xp 00000000 fd:00 13631750                   /lib/x86_64-linux-gnu/libpthread-2.23.so
7f7ace0af000-7f7ace2ae000 ---p 00018000 fd:00 13631750                   /lib/x86_64-linux-gnu/libpthread-2.23.so
7f7ace2ae000-7f7ace2af000 r--p 00017000 fd:00 13631750                   /lib/x86_64-linux-gnu/libpthread-2.23.so
7f7ace2af000-7f7ace2b0000 rw-p 00018000 fd:00 13631750                   /lib/x86_64-linux-gnu/libpthread-2.23.so
7f7ace2b0000-7f7ace2b4000 rw-p 00000000 00:00 0
7f7ace2b4000-7f7ace2da000 r-xp 00000000 fd:00 13631749                   /lib/x86_64-linux-gnu/ld-2.23.so
7f7ace2fe000-7f7ace33e000 rw-p 00000000 00:00 0
7f7ace36f000-7f7ace4b5000 rw-p 00000000 00:00 0
7f7ace4d1000-7f7ace4d2000 rw-p 00000000 00:00 0
7f7ace4d2000-7f7ace4d9000 r--s 00000000 fd:00 526716                     /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache
7f7ace4d9000-7f7ace4da000 r--p 00025000 fd:00 13631749                   /lib/x86_64-linux-gnu/ld-2.23.so
7f7ace4da000-7f7ace4db000 rw-p 00026000 fd:00 13631749                   /lib/x86_64-linux-gnu/ld-2.23.so
7f7ace4db000-7f7ace4dc000 rw-p 00000000 00:00 0
7ffd255d7000-7ffd255f8000 rw-p 00000000 00:00 0                          [stack]
7ffd255f8000-7ffd255fb000 r--p 00000000 00:00 0                          [vvar]
7ffd255fb000-7ffd255fd000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
[1]    10643 abort (core dumped)  /home/mick/dev/.virtualenvs/DLO/bin/python3
mick
Posts: 80
Joined: Mon May 21, 2018 7:57 pm

Re: get started with python API

Post by mick »

At the moment I'm working with a command line which scp my script to the linux machine, ssh executes it, scp the image back, and displays is locally. That's ok for now.
mick
Posts: 80
Joined: Mon May 21, 2018 7:57 pm

Re: get started with python API

Post by mick »

Still I cannot really start since I'm lacking basic knowledge, and cannot find documentation.

Where can I find which properties I can set for which objects? I found documentation for the blender python API. How relevant is this for LuxCore API?

In the code I read that sky2 and sun can be linked? How?

Thanks for gettin me started.

Maybe you can use my noob questions as indicators for setting up a documentation. I'm willing to contribute once I start to understand.
User avatar
B.Y.O.B.
Developer
Developer
Posts: 4146
Joined: Mon Dec 04, 2017 10:08 pm
Location: Germany
Contact:

Re: get started with python API

Post by B.Y.O.B. »

Unfortunately I can't help you with the dev environment/IPython problems, sorry.
mick wrote: Tue May 22, 2018 7:21 pm Where can I find which properties I can set for which objects?
They are documented in the Scene Description Language Manual.
I found documentation for the blender python API. How relevant is this for LuxCore API?
The Blender Python API is completely independent from LuxCore.
mick wrote: Tue May 22, 2018 7:21 pm In the code I read that sky2 and sun can be linked? How?
This is a BlendLuxCore specific concept.
In the SDL manual linked above you can see that the sun and sky2 both have a "dir" property which controls where the sun is positioned.
Usually it is best to use the same vector for both, that's what the "linking" does.
Maybe you can use my noob questions as indicators for setting up a documentation. I'm willing to contribute once I start to understand.
Indeed, we could use a lot more noob questions :)
mick
Posts: 80
Joined: Mon May 21, 2018 7:57 pm

Re: get started with python API

Post by mick »

Thanks again. The SDL manual was exactly what I was looking for.

Now the next question: How do I control the power of the sun and environmental light (sky)? It seems to be normalized when change the gain, i.e. ".1 .1 .1" is the same as "1. 1. 1.". How can I deactivate this?

And is there any means to calibrate gain with real sun power? I want to specify x watts per target area from direct sun + y from environment.
User avatar
B.Y.O.B.
Developer
Developer
Posts: 4146
Joined: Mon Dec 04, 2017 10:08 pm
Location: Germany
Contact:

Re: get started with python API

Post by B.Y.O.B. »

mick wrote: Tue May 22, 2018 9:12 pm It seems to be normalized when change the gain
This is probably the tonemapper auto-adjusting to the different brightness.
You will have to specify an imagepipeline, I left it out of the example to keep it small.
The default imagepipeline uses the tonemapper TONEMAP_AUTOLINEAR.

You can specify a custom imagepipeline by adding this to the config_props in the example:

Code: Select all

        
        # The first plugin: the linear tonemapper multiplies the pixel colors with the scale
        film.imagepipelines.0.0.type = TONEMAP_LINEAR
        film.imagepipelines.0.0.scale = 0.0001
        # The second plugin: gamma correction
        film.imagepipelines.0.1.type = GAMMA_CORRECTION
        film.imagepipelines.0.1.value = 2.2
https://gist.github.com/Theverat/0707eb ... /revisions
(In "film.imagepipelines.0.1", the first number is the imagepipeline index, the second is the plugin index)
mick wrote: Tue May 22, 2018 9:12 pm And is there any means to calibrate gain with real sun power? I want to specify x watts/lux per target area from direct sun + y from environment.
As far as I know it is already using real-world sun power, but I don't know how this value was chosen.
Maybe Dade can tell you more about this, or you can have a look at the LuxCore code of the sun light source.
I found this old thread on the topic: http://www.luxrender.net/forum/viewtopi ... =8&t=13276

By the way, you might be interested in the IRRADIANCE AOV: http://www.luxrender.net/forum/viewtopi ... 40#p109492
Post Reply