bryancole / raypier_optics

A raytracing toolkit for optical design
Other
56 stars 8 forks source link

Installation issue on windows10 #2

Open Jonas231 opened 3 years ago

Jonas231 commented 3 years ago

Hello, if found your impressive package recently. I had some issues with the installation on windows10: I downloaded your master and used conda. conda env create -f environment.yml I tried to reform the platform specific tags: https://stackoverflow.com/questions/55554431/conda-fails-to-create-environment-from-yml However, I get this message:

ResolvePackageNotFound:

Before removing some tags the list was even longer:

Kind regards, Jonas

bryancole commented 3 years ago

Hi Jonas,

I'm happy to know you're interested in using raypier. Getting it working on Windows has been on my todo list for a while but not having a Win PC has hindered me somewhat. I'm not surprised the environment.yml file doesn't work on Windows. If you can get raypier working on Win10 that would be awesome.

To create an environment on Windows I think it will be easier to start with just the core raypier dependencies. These are: Mayavi, numpy, Cython.

Getting Mayavi installed should pull in Traits, traitsui, qt, pyqt, vtk etc.

I think starting with a bare py3.8 env is a good plan. Py38 seems to have the broadest package support in conda. Be sure to use the condaforge channel.

Once you've got a python environment set up. The next step is building raypier. This is where we may run into problems. You'll need MSVC SDK or visual studio installed with the right version to build extensions for py38. I don't recall which version that is. You'll need to Google this. With the right build environment you should be able to simply run "python setup.py build" to build it. Or pip-install it.

I'm on vacation right now with no access to a PC so I can't help much until I get back on the 23rd. Feel free to ask questions though.

Best Bryan

On Thu, 12 Aug 2021, 09:34 Jonas231, @.***> wrote:

Hello, if found your impressive package recently. I had some issues with the installation on windows10: I downloaded your master and used conda. conda env create -f environment.yml I tried to reform the platform specific tags:

https://stackoverflow.com/questions/55554431/conda-fails-to-create-environment-from-yml However, I get this message:

ResolvePackageNotFound:

  • gmp=6.2.1
  • libgfortran5=9.3.0
  • gnutls=3.6.13
  • libev=4.33
  • nettle=3.6
  • libgcc-ng=9.3.0
  • dbus=1.13.6
  • libglu=9.0.0
  • libuuid=2.32.1
  • nss=3.65
  • libgomp=9.3.0
  • readline=8.1
  • _openmp_mutex=4.5
  • libedit=3.1.20191231
  • libxkbcommon=1.0.3
  • tk=8.6.101
  • alsa-lib=1.2.3
  • libnghttp2=1.43.0
  • nspr=4.30
  • ld_impl_linux-64=2.35.1
  • lame=3.100
  • openh264=2.1.1
  • ncurses=6.2
  • libstdcxx-ng=9.3.0
  • libgfortran-ng=9.3.0

Before removing some tags the list was even longer:

  • c-ares==1.17.1=h7f98852_1
  • gmp==6.2.1=h58526e2_0
  • double-conversion==3.1.5=h9c3ff4c_2
  • libglib==2.68.2=h3e27bee_0
  • libedit==3.1.20191231=he28a2e2_2
  • sqlite==3.35.5=h74cdb3f_0
  • freetype==2.10.4=h0708190_1
  • glew==2.1.0=h9c3ff4c_2
  • libllvm11==11.1.0=hf817b99_2
  • glib-tools==2.68.2=h9c3ff4c_0
  • krb5==1.19.1=hcc1bbae_0
  • gl2ps==1.4.2=h0708190_0
  • libgfortran-ng==9.3.0=hff62375_19
  • tbb-devel==2020.2=h4bd325d_4
  • pcre==8.44=he1b5a44_0
  • gst-plugins-base==1.18.4=hf529b03_2
  • pyqt-impl==5.12.3=py38h7400c14_7
  • hdf4==4.2.15=h10796ff_3
  • lame==3.100=h7f98852_1001
  • proj==7.2.0=h277dcde_2
  • gnutls==3.6.13=h85f3911_1
  • openexr==2.5.5=hf817b99_0
  • readline==8.1=h46c0cb4_0
  • nettle==3.6=he412f7d_0
  • libssh2==1.9.0=ha56f1ee_6
  • libpng==1.6.37=h21135ba_2
  • utfcpp==3.2=ha770c72_0
  • _libgcc_mutex==0.1=conda_forge
  • xorg-libxdmcp==1.1.3=h7f98852_0
  • libopenblas==0.3.15=pthreads_h8fe5266_1
  • cython==0.29.23=py38h709712a_0
  • libnghttp2==1.43.0=h812cca2_0
  • libglu==9.0.0=he1b5a44_1001
  • libevent==2.1.10=hcdb4288_3
  • pyqtwebengine==5.12.1=py38h7400c14_7
  • certifi==2020.12.5=py38h578d9bd_1
  • pyyaml==5.4.1=py38h497a2fe_0
  • x264==1!161.3030=h7f98852_0
  • libpq==13.3=hd57d9b9_0
  • libxcb==1.13=h7f98852_1003
  • libvorbis==1.3.7=h9c3ff4c_0
  • tbb==2020.2=h4bd325d_4
  • libcurl==7.76.1=h2574ce0_2
  • ilmbase==2.5.5=h780b84a_0
  • rapidjson==1.1.0=he1b5a44_1002
  • bzip2==1.0.8=h7f98852_4
  • lz4-c==1.9.3=h9c3ff4c_0
  • xorg-libx11==1.7.1=h7f98852_0
  • openh264==2.1.1=h780b84a_0
  • mayavi==4.7.2=py38h32b5f5e_4
  • glib==2.68.2=h9c3ff4c_0
  • hdf5==1.10.6=nompi_h6a2412b_1114
  • pyqt5-sip==4.19.18=py38h709712a_7
  • expat==2.3.0=h9c3ff4c_0
  • python==3.8.10=h49503c6_1_cpython
  • pyqtchart==5.12=py38h7400c14_7
  • dbus==1.13.6=h48d8840_2
  • pyqt==5.12.3=py38h578d9bd_7
  • occt==7.5.2=h7391655_0
  • importlib-metadata==4.0.1=py38h578d9bd_0
  • traits==6.2.0=py38h497a2fe_0
  • _openmp_mutex==4.5=1_gnu
  • libogg==1.3.4=h7f98852_1
  • mysql-libs==8.0.23=h935591d_2
  • fontconfig==2.13.1=hba837de_1005
  • freeimage==3.18.0=h88c329d_7
  • importlib_resources==5.1.3=py38h578d9bd_0
  • setuptools==49.6.0=py38h578d9bd_3
  • libwebp-base==1.2.0=h7f98852_2
  • libgomp==9.3.0=h2828fa1_19
  • libxkbcommon==1.0.3=he3ba5ed_0
  • curl==7.76.1=hea6ffbf_2
  • unicodedata2==13.0.0.post2=py38h1e0a361_1
  • jsoncpp==1.9.4=h4bd325d_2
  • libopus==1.3.1=h7f98852_1
  • numpy==1.20.3=py38h9894fe3_0
  • xz==5.2.5=h516909a_1
  • tk==8.6.10=h21135ba_1
  • pillow==8.2.0=py38ha0e1e83_1
  • jpeg==9d=h36c2ea0_0
  • libiconv==1.16=h516909a_0
  • brotli==1.0.9=h9c3ff4c_4
  • zlib==1.2.11=h516909a_1010
  • qt==5.12.9=hda022c4_4
  • libnetcdf==4.8.0=nompi_hcd642e3_103
  • ncurses==6.2=h58526e2_4
  • ca-certificates==2020.12.5=ha878542_0
  • libclang==11.1.0=default_ha53f305_1
  • gstreamer==1.18.4=h76c114f_2
  • vtk==9.0.1=no_osmesa_py38h3850a3d_109
  • xorg-libxext==1.3.4=h7f98852_1
  • nspr==4.30=h9c3ff4c_0
  • nss==3.65=hb5efdd6_0
  • libzip==1.7.3=h4de3113_0
  • openjpeg==2.4.0=hb52868f_1
  • libev==4.33=h516909a_1
  • xorg-libice==1.0.10=h7f98852_0
  • mysql-common==8.0.23=ha770c72_2
  • gettext==0.19.8.1=h0b5b191_1005
  • openssl==1.1.1k=h7f98852_0
  • eigen==3.3.9=h4bd325d_1
  • loguru==0.5.3=py38h578d9bd_2
  • xorg-libxau==1.0.9=h7f98852_0
  • libgfortran5==9.3.0=hff62375_19
  • zstd==1.4.9=ha95c52a_0
  • libraw==0.20.2=h10796ff_1
  • libgcc-ng==9.3.0=h2828fa1_19
  • scipy==1.6.3=py38h7b17777_0
  • lcms2==2.12=hddcbb42_0
  • xorg-kbproto==1.0.7=h7f98852_1002
  • xorg-libxt==1.2.1=h7f98852_2
  • libstdcxx-ng==9.3.0=h6de172a_19
  • jxrlib==1.1=h7f98852_2
  • yaml==0.2.5=h516909a_0
  • xorg-xproto==7.0.31=h7f98852_1007
  • libuuid==2.32.1=h7f98852_1000
  • ffmpeg==4.3.1=hca11adc_2
  • libtheora==1.1.1=h7f98852_1005
  • xorg-xextproto==7.3.0=h7f98852_1002
  • icu==68.1=h58526e2_0
  • pugixml==1.11.4=h9c3ff4c_0
  • ld_impl_linux-64==2.35.1=hea4e1c9_2
  • pthread-stubs==0.4=h36c2ea0_1001
  • pythonocc-core==7.5.1=py38hb1953e2_0
  • libxml2==2.9.12=h72842e0_0
  • libtiff==4.2.0=hbd63e13_2
  • libffi==3.3=h58526e2_2
  • alsa-lib==1.2.3=h516909a_0
  • xorg-libsm==1.2.3=hd9c2040_1000 Is there a way to install on windows 10? Could this yml be generated in a platform-independent way?

Kind regards, Jonas

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/bryancole/raypier_optics/issues/2, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABYLNVN7UEVCWOXEAQFMUDT4OBQJANCNFSM5CASTMPQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email .

Jonas231 commented 3 years ago

Hello, thank you for your quick answer. I did this:

conda create --name mypython38 python=3.8

conda install -c conda-forge numpy Aus https://anaconda.org/conda-forge/numpy conda install -c conda-forge cython Aus https://anaconda.org/conda-forge/cython conda install -c conda-forge mayavi Aus https://anaconda.org/conda-forge/mayavi

Then I tried to build and got this output:

(mypython38_raypier) C:\Users\herbst\Downloads\raypier_optics-master\raypier_optics-master>python setup.py build Warning: passing language='c++' to cythonize() is deprecated. Instead, put "# distutils: language=c++" in your .pyx or .pxd file(s) Compiling raypier/core\cdistortions.pyx because it changed. Compiling raypier/core\cfaces.pyx because it changed. Compiling raypier/core\cfields.pyx because it changed. Compiling raypier/core\cmaterials.pyx because it changed. Compiling raypier/core\cshapes.pyx because it changed. Compiling raypier/core\ctracer.pyx because it changed. [1/6] Cythonizing raypier/core\cdistortions.pyx [2/6] Cythonizing raypier/core\cfaces.pyx warning: raypier\core\cfaces.pyx:89:16: Unsigned index type not allowed before OpenMP 3.0 warning: raypier\core\cfaces.pyx:108:16: Unsigned index type not allowed before OpenMP 3.0 warning: raypier\core\cfaces.pyx:128:16: Unsigned index type not allowed before OpenMP 3.0 [3/6] Cythonizing raypier/core\cfields.pyx warning: raypier\core\cfields.pyx:101:16: Unsigned index type not allowed before OpenMP 3.0 [4/6] Cythonizing raypier/core\cmaterials.pyx [5/6] Cythonizing raypier/core\cshapes.pyx [6/6] Cythonizing raypier/core\ctracer.pyx warning: raypier\core\ctracer.pyx:18:11: 'DBL_MAX' redeclared warning: raypier\core\ctracer.pyx:2114:31: Non-trivial type declarators in shared declaration (e.g. mix of pointers and values). Each pointer declaration should be on its own line.

Error compiling Cython file:

... cdef extern from "float.h": double DBL_MAX

cdef: INF=(DBL_MAX+DBL_MAX) double root2 = sqrt(2.0) ^

raypier\core\ctracer.pyx:22:23: ambiguous overloaded method

Error compiling Cython file:

... cdef inline double sep_(vector_t p1, vector_t p2) nogil: cdef double a,b a = (p2.x-p1.x) b = (p2.y-p1.y) c = (p2.z-p1.z) return sqrt((aa) + (bb) + (c*c)) ^

raypier\core\ctracer.pyx:108:15: ambiguous overloaded method

Error compiling Cython file:

... a_ = setv(a) c = subvs(a, b) return (c.x, c.y, c_.z)

cdef inline double mag_(vector_t a) nogil: return sqrt(a.xa.x + a.ya.y + a.z*a.z) ^

raypier\core\ctracer.pyx:207:15: ambiguous overloaded method

Error compiling Cython file:

... b_ = setv(b) c = cross(a, b) return (c.x, c.y, c.z)

cdef vectort norm(vector_t a) nogil: cdef double mag=sqrt(a.xa.x + a.ya.y + a.z*a.z) ^

raypier\core\ctracer.pyx:246:24: ambiguous overloaded method

Error compiling Cython file:

...

property amplitude:
    """E field amplitude"""
    def __get__(self):
        cdef ray_t ray=self.ray
        return sqrt(ray.E1_amp.real**2 + ray.E1_amp.imag**2 +\
                  ^

raypier\core\ctracer.pyx:563:23: ambiguous overloaded method

Error compiling Cython file:

...

property E_left:
    def __get__(self):
        E1_amp = self.E1_amp
        E2_amp = self.E2_amp
        return (E1_amp + 1.0j*E2_amp)/sqrt(2)
                                         ^

raypier\core\ctracer.pyx:577:46: ambiguous overloaded method

Error compiling Cython file:

...

property E_right:
    def __get__(self):
        E1_amp = self.E1_amp
        E2_amp = self.E2_amp
        return (E1_amp - 1.0j*E2_amp)/sqrt(2)
                                         ^

raypier\core\ctracer.pyx:583:46: ambiguous overloaded method

Error compiling Cython file:

... vector_t E1_vector, E2_vector

        E2_vector = norm_(cross_(self.ray.direction, self.ray.E_vector))
        E1_vector = norm_(cross_(E2_vector, self.ray.direction))

        E1 = sqrt(self.ray.E1_amp.real**2 + self.ray.E1_amp.imag**2)
                ^

raypier\core\ctracer.pyx:609:21: ambiguous overloaded method

Error compiling Cython file:

...

        E2_vector = norm_(cross_(self.ray.direction, self.ray.E_vector))
        E1_vector = norm_(cross_(E2_vector, self.ray.direction))

        E1 = sqrt(self.ray.E1_amp.real**2 + self.ray.E1_amp.imag**2)
        E2 = sqrt(self.ray.E2_amp.real**2 + self.ray.E2_amp.imag**2)
                ^

raypier\core\ctracer.pyx:610:21: ambiguous overloaded method

Error compiling Cython file:

... phi2 = atan2(self.ray.E2_amp.imag, self.ray.E2_amp.real)

        A = E1*E1*sin(2*phi1) + E2*E2*sin(2*phi2)
        B = E1*E1*cos(2*phi1) + E2*E2*cos(2*phi2)

        mag = sqrt(A*A + B*B)
                 ^

raypier\core\ctracer.pyx:617:22: ambiguous overloaded method

Error compiling Cython file:

... v += (dotprod(h[3],u[4]) - dotprod(h[4],u[3]))2 v += (dotprod(h[1],u[4]) - dotprod(h[4],u[1]))2 v += (dotprod(h[0],u[3]) - dotprod(h[3],u[0]))2 v += (dotprod(h[2],u[5]) - dotprod(h[5],u[2]))2

            _out[k] = 1000*sqrt(v/6)/ wavelen[r.wavelength_idx]
                              ^

raypier\core\ctracer.pyx:1356:35: ambiguous overloaded method Traceback (most recent call last): File "setup.py", line 35, in ext_modules = cythonize("raypier/core/.pyx", File "C:\Users\herbst\Anaconda3\envs\mypython38_raypier\lib\site-packages\Cython\Build\Dependencies.py", line 1102, in cythonize cythonize_one(args) File "C:\Users\herbst\Anaconda3\envs\mypython38_raypier\lib\site-packages\Cython\Build\Dependencies.py", line 1225, in cythonize_one raise CompileError(None, pyx_file) Cython.Compiler.Errors.CompileError: raypier/core\ctracer.pyx

(mypython38_raypier) C:\Users\herbst\Downloads\raypier_optics-master\raypier_optics-master>

Jonas231 commented 3 years ago

I have Visual Studio Community 2019, however I realized that C++ development tools are not installed. I will repeat the process...

bryancole commented 3 years ago

Hi Jonas,

I think this error is due to a change in Cython in a recent version to make it stricter in c++ mode. See this thread: https://stackoverflow.com/questions/22962661/getting-error-c2668-sqrt-ambiguous-call-to-overloaded-function

Seems the problem is mainly the sqrt() function. The fix is to add more explicit type casts when calling this function (or maybe in the cimport declaration. I'm not sure). I can't do any coding this week though so I can't commit a fix until the week after next. Sorry.

You could try downgrading to an earlier cython version or try to fix it yourself.

Best Bryan

On Fri, 13 Aug 2021, 10:01 Jonas231, @.***> wrote:

I have Visual Studio Community 2019, however I realized that C++ development tools are not installed. I will repeat the process...

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/bryancole/raypier_optics/issues/2#issuecomment-898301342, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABYLNWI3PM6PRV3MANZFJ3T4TNM7ANCNFSM5CASTMPQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email .

bryancole commented 2 years ago

I've just pushed some minor changes which fix the Win10 build cython compile/build issues. In fact, I'm slightly gobsmacked that it does in fact build on Windows. I've added an new environment.yml file with my Win10 python env. There's also a binary wheel for Win10 in the Releases area of github.

I've got it running on a Win10 guest VM. It's rather slow and the compiler-output suggests it's not using OpenMP for full CPU utilisation (maybe the Win64 compiler flags for openmp are different to gcc/linux.). The EFieldProbe object doesn't seem to be rendering properly but I'm not sure if this is a platform issue or a bug in my VM OpenGL drivers (software-rendering only). If you have a proper graphics card and OpenGL installed, it should run much better. I don't have any non-virtual Windows PCs.

Bryan

bryancole commented 2 years ago

Just pushed a fix for the OpenMP issue on Win10 which improves the speed somewhat.

Jonas231 commented 2 years ago

Thank you for those changes. I will try it out again soon on Win10 and Linux Mint when I have time.

Jonas231 commented 2 years ago

I did this on Win10: conda create --name mypython38 python=3.8 conda install -c conda-forge numpy Aus https://anaconda.org/conda-forge/numpy conda install -c conda-forge cython Aus https://anaconda.org/conda-forge/cython conda install -c conda-forge mayavi Aus https://anaconda.org/conda-forge/mayav conda install -c conda-forge spyder conda install -c conda-forge sympy conda install -c conda-forge scipy I built raypier with C:\Users\Jonas\Downloads\raypier_optics-master>python setup.py build and copied it into: C:\Users\Jonas.conda\envs\mypython38\Lib

Next I tried your demo.py (C:\Users\Jonas\Downloads\raypier_optics-master\examples) It works! grafik

I got these messages during building: (mypython38) C:\Users\Jonas\Downloads\raypier_optics-master>python setup.py build Warning: passing language='c++' to cythonize() is deprecated. Instead, put "# distutils: language=c++" in your .pyx or .pxd file(s) Compiling raypier/core\cdistortions.pyx because it changed. Compiling raypier/core\cfaces.pyx because it changed. Compiling raypier/core\cfields.pyx because it changed. Compiling raypier/core\cmaterials.pyx because it changed. Compiling raypier/core\cshapes.pyx because it changed. Compiling raypier/core\ctracer.pyx because it changed. [1/6] Cythonizing raypier/core\cdistortions.pyx [2/6] Cythonizing raypier/core\cfaces.pyx [3/6] Cythonizing raypier/core\cfields.pyx [4/6] Cythonizing raypier/core\cmaterials.pyx [5/6] Cythonizing raypier/core\cshapes.pyx [6/6] Cythonizing raypier/core\ctracer.pyx warning: raypier\core\ctracer.pyx:2111:31: Non-trivial type declarators in shared declaration (e.g. mix of pointers and values). Each pointer declaration should be on its own line. running build running build_py creating build creating build\lib.win-amd64-3.8 creating build\lib.win-amd64-3.8\raypier copying raypier\achromats.py -> build\lib.win-amd64-3.8\raypier copying raypier\apertures.py -> build\lib.win-amd64-3.8\raypier copying raypier\api.py -> build\lib.win-amd64-3.8\raypier copying raypier\aspherics.py -> build\lib.win-amd64-3.8\raypier copying raypier\bases.py -> build\lib.win-amd64-3.8\raypier copying raypier\beamsplitters.py -> build\lib.win-amd64-3.8\raypier copying raypier\beamstop.py -> build\lib.win-amd64-3.8\raypier copying raypier\chirp_result.py -> build\lib.win-amd64-3.8\raypier copying raypier\constraints.py -> build\lib.win-amd64-3.8\raypier copying raypier\corner_cubes.py -> build\lib.win-amd64-3.8\raypier copying raypier\decompositions.py -> build\lib.win-amd64-3.8\raypier copying raypier\dielectrictroughs.py -> build\lib.win-amd64-3.8\raypier copying raypier\diffraction_gratings.py -> build\lib.win-amd64-3.8\raypier copying raypier\dispersion.py -> build\lib.win-amd64-3.8\raypier copying raypier\distortions.py -> build\lib.win-amd64-3.8\raypier copying raypier\editors.py -> build\lib.win-amd64-3.8\raypier copying raypier\ellipsoids.py -> build\lib.win-amd64-3.8\raypier copying raypier\faces.py -> build\lib.win-amd64-3.8\raypier copying raypier\fields.py -> build\lib.win-amd64-3.8\raypier copying raypier\gausslet_sources.py -> build\lib.win-amd64-3.8\raypier copying raypier\general_optic.py -> build\lib.win-amd64-3.8\raypier copying raypier\has_queue.py -> build\lib.win-amd64-3.8\raypier copying raypier\intensity_image.py -> build\lib.win-amd64-3.8\raypier copying raypier\intensity_surface.py -> build\lib.win-amd64-3.8\raypier copying raypier\lenses.py -> build\lib.win-amd64-3.8\raypier copying raypier\materials.py -> build\lib.win-amd64-3.8\raypier copying raypier\mirrors.py -> build\lib.win-amd64-3.8\raypier copying raypier\more_utils.py -> build\lib.win-amd64-3.8\raypier copying raypier\parabolics.py -> build\lib.win-amd64-3.8\raypier copying raypier\point_spread_func.py -> build\lib.win-amd64-3.8\raypier copying raypier\prisms.py -> build\lib.win-amd64-3.8\raypier copying raypier\probes.py -> build\lib.win-amd64-3.8\raypier copying raypier\qt_future_call.py -> build\lib.win-amd64-3.8\raypier copying raypier\results.py -> build\lib.win-amd64-3.8\raypier copying raypier\shapes.py -> build\lib.win-amd64-3.8\raypier copying raypier\sources.py -> build\lib.win-amd64-3.8\raypier copying raypier\splines.py -> build\lib.win-amd64-3.8\raypier copying raypier\step_export.py -> build\lib.win-amd64-3.8\raypier copying raypier\tracer.py -> build\lib.win-amd64-3.8\raypier copying raypier\utils.py -> build\lib.win-amd64-3.8\raypier copying raypier\vtk_algorithms.py -> build\lib.win-amd64-3.8\raypier copying raypier\waveplates.py -> build\lib.win-amd64-3.8\raypier copying raypier\windows.py -> build\lib.win-amd64-3.8\raypier copying raypier__init__.py -> build\lib.win-amd64-3.8\raypier creating build\lib.win-amd64-3.8\raypier\core copying raypier\core\fields.py -> build\lib.win-amd64-3.8\raypier\core copying raypier\core\find_focus.py -> build\lib.win-amd64-3.8\raypier\core copying raypier\core\gausslets.py -> build\lib.win-amd64-3.8\raypier\core copying raypier\core\tracer.py -> build\lib.win-amd64-3.8\raypier\core copying raypier\core\unwrap2d.py -> build\lib.win-amd64-3.8\raypier\core copying raypier\core\utils.py -> build\lib.win-amd64-3.8\raypier\core copying raypier\core__init__.py -> build\lib.win-amd64-3.8\raypier\core creating build\lib.win-amd64-3.8\raypier\material_data copying raypier\material_data\glass_dispersion_database.db -> build\lib.win-amd64-3.8\raypier\material_data copying raypier\core\cdistortions.pyx -> build\lib.win-amd64-3.8\raypier\core copying raypier\core\cfaces.pyx -> build\lib.win-amd64-3.8\raypier\core copying raypier\core\cfields.pyx -> build\lib.win-amd64-3.8\raypier\core copying raypier\core\cmaterials.pyx -> build\lib.win-amd64-3.8\raypier\core copying raypier\core\cshapes.pyx -> build\lib.win-amd64-3.8\raypier\core copying raypier\core\ctracer.pyx -> build\lib.win-amd64-3.8\raypier\core copying raypier\core\ctracer.pxd -> build\lib.win-amd64-3.8\raypier\core running build_ext building 'raypier.core.cdistortions' extension creating build\temp.win-amd64-3.8 creating build\temp.win-amd64-3.8\Release creating build\temp.win-amd64-3.8\Release\raypier creating build\temp.win-amd64-3.8\Release\raypier\core C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -IC:\Users\Jonas.conda\envs\mypython38\lib\site-packages\numpy\core\include -IC:\Users\Jonas.conda\envs\mypython38\include -IC:\Users\Jonas.conda\envs\mypython38\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\cppwinrt" /EHsc /Tpraypier/core\cdistortions.cpp /Fobuild\temp.win-amd64-3.8\Release\raypier/core\cdistortions.obj /openmp cdistortions.cpp C:\Users\Jonas.conda\envs\mypython38\lib\site-packages\numpy\core\include\numpy\npy_1_7_deprecated_api.h(14) : Warning Msg: Using deprecated NumPy API, disable it with #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION raypier/core\cdistortions.cpp(7038): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\bin\HostX86\x64\link.exe /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO /LIBPATH:C:\Users\Jonas.conda\envs\mypython38\libs /LIBPATH:C:\Users\Jonas.conda\envs\mypython38\PCbuild\amd64 "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\ATLMFC\lib\x64" "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\lib\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\lib\um\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\ucrt\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x64" /EXPORT:PyInit_cdistortions build\temp.win-amd64-3.8\Release\raypier/core\cdistortions.obj /OUT:build\lib.win-amd64-3.8\raypier\core\cdistortions.cp38-win_amd64.pyd /IMPLIB:build\temp.win-amd64-3.8\Release\raypier/core\cdistortions.cp38-win_amd64.lib /openmp LINK : warning LNK4044: unrecognized option '/openmp'; ignored Creating library build\temp.win-amd64-3.8\Release\raypier/core\cdistortions.cp38-win_amd64.lib and object build\temp.win-amd64-3.8\Release\raypier/core\cdistortions.cp38-win_amd64.exp Generating code Finished generating code building 'raypier.core.cfaces' extension C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -IC:\Users\Jonas.conda\envs\mypython38\lib\site-packages\numpy\core\include -IC:\Users\Jonas.conda\envs\mypython38\include -IC:\Users\Jonas.conda\envs\mypython38\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\cppwinrt" /EHsc /Tpraypier/core\cfaces.cpp /Fobuild\temp.win-amd64-3.8\Release\raypier/core\cfaces.obj /openmp cfaces.cpp C:\Users\Jonas.conda\envs\mypython38\lib\site-packages\numpy\core\include\numpy\npy_1_7_deprecated_api.h(14) : Warning Msg: Using deprecated NumPy API, disable it with #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION raypier/core\cfaces.cpp(4874): warning C4244: '=': conversion from 'Py_ssize_t' to 'long', possible loss of data raypier/core\cfaces.cpp(5181): warning C4244: '=': conversion from 'Py_ssize_t' to 'long', possible loss of data raypier/core\cfaces.cpp(5182): warning C4244: '=': conversion from 'Py_ssize_t' to 'long', possible loss of data raypier/core\cfaces.cpp(5183): warning C4244: '=': conversion from 'Py_ssize_t' to 'long', possible loss of data raypier/core\cfaces.cpp(5515): warning C4244: '=': conversion from 'Py_ssize_t' to 'long', possible loss of data raypier/core\cfaces.cpp(12952): warning C4244: '=': conversion from 'double' to 'float', possible loss of data raypier/core\cfaces.cpp(12980): warning C4244: '=': conversion from 'double' to 'float', possible loss of data raypier/core\cfaces.cpp(13038): warning C4244: '=': conversion from 'double' to 'float', possible loss of data raypier/core\cfaces.cpp(13066): warning C4244: '=': conversion from 'double' to 'float', possible loss of data raypier/core\cfaces.cpp(15892): warning C4244: '=': conversion from 'npy_intp' to 'int', possible loss of data C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\bin\HostX86\x64\link.exe /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO /LIBPATH:C:\Users\Jonas.conda\envs\mypython38\libs /LIBPATH:C:\Users\Jonas.conda\envs\mypython38\PCbuild\amd64 "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\ATLMFC\lib\x64" "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\lib\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\lib\um\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\ucrt\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x64" /EXPORT:PyInit_cfaces build\temp.win-amd64-3.8\Release\raypier/core\cfaces.obj /OUT:build\lib.win-amd64-3.8\raypier\core\cfaces.cp38-win_amd64.pyd /IMPLIB:build\temp.win-amd64-3.8\Release\raypier/core\cfaces.cp38-win_amd64.lib /openmp LINK : warning LNK4044: unrecognized option '/openmp'; ignored Creating library build\temp.win-amd64-3.8\Release\raypier/core\cfaces.cp38-win_amd64.lib and object build\temp.win-amd64-3.8\Release\raypier/core\cfaces.cp38-win_amd64.exp Generating code Finished generating code building 'raypier.core.cfields' extension C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -IC:\Users\Jonas.conda\envs\mypython38\lib\site-packages\numpy\core\include -IC:\Users\Jonas.conda\envs\mypython38\include -IC:\Users\Jonas.conda\envs\mypython38\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\cppwinrt" /EHsc /Tpraypier/core\cfields.cpp /Fobuild\temp.win-amd64-3.8\Release\raypier/core\cfields.obj /openmp cfields.cpp C:\Users\Jonas.conda\envs\mypython38\lib\site-packages\numpy\core\include\numpy\npy_1_7_deprecated_api.h(14) : Warning Msg: Using deprecated NumPy API, disable it with #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION raypier/core\cfields.cpp(3567): warning C4244: '=': conversion from 'Py_ssize_t' to 'long', possible loss of data raypier/core\cfields.cpp(5017): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data raypier/core\cfields.cpp(5018): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data raypier/core\cfields.cpp(5642): warning C4267: '=': conversion from 'size_t' to 'unsigned int', possible loss of data raypier/core\cfields.cpp(6728): warning C4267: '=': conversion from 'size_t' to 'unsigned int', possible loss of data raypier/core\cfields.cpp(6730): warning C4267: '=': conversion from 'size_t' to 'unsigned int', possible loss of data C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\bin\HostX86\x64\link.exe /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO /LIBPATH:C:\Users\Jonas.conda\envs\mypython38\libs /LIBPATH:C:\Users\Jonas.conda\envs\mypython38\PCbuild\amd64 "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\ATLMFC\lib\x64" "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\lib\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\lib\um\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\ucrt\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x64" /EXPORT:PyInit_cfields build\temp.win-amd64-3.8\Release\raypier/core\cfields.obj /OUT:build\lib.win-amd64-3.8\raypier\core\cfields.cp38-win_amd64.pyd /IMPLIB:build\temp.win-amd64-3.8\Release\raypier/core\cfields.cp38-win_amd64.lib /openmp LINK : warning LNK4044: unrecognized option '/openmp'; ignored Creating library build\temp.win-amd64-3.8\Release\raypier/core\cfields.cp38-win_amd64.lib and object build\temp.win-amd64-3.8\Release\raypier/core\cfields.cp38-win_amd64.exp Generating code Finished generating code building 'raypier.core.cmaterials' extension C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -IC:\Users\Jonas.conda\envs\mypython38\lib\site-packages\numpy\core\include -IC:\Users\Jonas.conda\envs\mypython38\include -IC:\Users\Jonas.conda\envs\mypython38\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\cppwinrt" /EHsc /Tpraypier/core\cmaterials.cpp /Fobuild\temp.win-amd64-3.8\Release\raypier/core\cmaterials.obj /openmp cmaterials.cpp C:\Users\Jonas.conda\envs\mypython38\lib\site-packages\numpy\core\include\numpy\npy_1_7_deprecated_api.h(14) : Warning Msg: Using deprecated NumPy API, disable it with #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION raypier/core\cmaterials.cpp(4625): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data raypier/core\cmaterials.cpp(4766): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data raypier/core\cmaterials.cpp(4907): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\bin\HostX86\x64\link.exe /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO /LIBPATH:C:\Users\Jonas.conda\envs\mypython38\libs /LIBPATH:C:\Users\Jonas.conda\envs\mypython38\PCbuild\amd64 "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\ATLMFC\lib\x64" "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\lib\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\lib\um\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\ucrt\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x64" /EXPORT:PyInit_cmaterials build\temp.win-amd64-3.8\Release\raypier/core\cmaterials.obj /OUT:build\lib.win-amd64-3.8\raypier\core\cmaterials.cp38-win_amd64.pyd /IMPLIB:build\temp.win-amd64-3.8\Release\raypier/core\cmaterials.cp38-win_amd64.lib /openmp LINK : warning LNK4044: unrecognized option '/openmp'; ignored Creating library build\temp.win-amd64-3.8\Release\raypier/core\cmaterials.cp38-win_amd64.lib and object build\temp.win-amd64-3.8\Release\raypier/core\cmaterials.cp38-win_amd64.exp Generating code Finished generating code building 'raypier.core.cshapes' extension C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -IC:\Users\Jonas.conda\envs\mypython38\lib\site-packages\numpy\core\include -IC:\Users\Jonas.conda\envs\mypython38\include -IC:\Users\Jonas.conda\envs\mypython38\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\cppwinrt" /EHsc /Tpraypier/core\cshapes.cpp /Fobuild\temp.win-amd64-3.8\Release\raypier/core\cshapes.obj /openmp cshapes.cpp raypier/core\cshapes.cpp(6821): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\bin\HostX86\x64\link.exe /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO /LIBPATH:C:\Users\Jonas.conda\envs\mypython38\libs /LIBPATH:C:\Users\Jonas.conda\envs\mypython38\PCbuild\amd64 "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\ATLMFC\lib\x64" "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\lib\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\lib\um\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\ucrt\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x64" /EXPORT:PyInit_cshapes build\temp.win-amd64-3.8\Release\raypier/core\cshapes.obj /OUT:build\lib.win-amd64-3.8\raypier\core\cshapes.cp38-win_amd64.pyd /IMPLIB:build\temp.win-amd64-3.8\Release\raypier/core\cshapes.cp38-win_amd64.lib /openmp LINK : warning LNK4044: unrecognized option '/openmp'; ignored Creating library build\temp.win-amd64-3.8\Release\raypier/core\cshapes.cp38-win_amd64.lib and object build\temp.win-amd64-3.8\Release\raypier/core\cshapes.cp38-win_amd64.exp Generating code Finished generating code building 'raypier.core.ctracer' extension C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -IC:\Users\Jonas.conda\envs\mypython38\lib\site-packages\numpy\core\include -IC:\Users\Jonas.conda\envs\mypython38\include -IC:\Users\Jonas.conda\envs\mypython38\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\cppwinrt" /EHsc /Tpraypier/core\ctracer.cpp /Fobuild\temp.win-amd64-3.8\Release\raypier/core\ctracer.obj /openmp ctracer.cpp C:\Users\Jonas.conda\envs\mypython38\lib\site-packages\numpy\core\include\numpy\npy_1_7_deprecated_api.h(14) : Warning Msg: Using deprecated NumPy API, disable it with #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION raypier/core\ctracer.cpp(9561): warning C4244: '=': conversion from 'double' to 'float', possible loss of data raypier/core\ctracer.cpp(9582): warning C4244: '=': conversion from 'double' to 'float', possible loss of data raypier/core\ctracer.cpp(11242): warning C4244: '=': conversion from 'double' to 'float', possible loss of data raypier/core\ctracer.cpp(11263): warning C4244: '=': conversion from 'double' to 'float', possible loss of data raypier/core\ctracer.cpp(14539): warning C4267: 'argument': conversion from 'size_t' to 'unsigned long', possible loss of data raypier/core\ctracer.cpp(14703): warning C4267: 'argument': conversion from 'size_t' to 'unsigned long', possible loss of data raypier/core\ctracer.cpp(14808): warning C4267: 'argument': conversion from 'size_t' to 'unsigned long', possible loss of data raypier/core\ctracer.cpp(14961): warning C4267: 'argument': conversion from 'size_t' to 'unsigned long', possible loss of data raypier/core\ctracer.cpp(15177): warning C4267: 'argument': conversion from 'size_t' to 'unsigned long', possible loss of data raypier/core\ctracer.cpp(15393): warning C4267: 'argument': conversion from 'size_t' to 'unsigned long', possible loss of data raypier/core\ctracer.cpp(15609): warning C4267: 'argument': conversion from 'size_t' to 'unsigned long', possible loss of data raypier/core\ctracer.cpp(15852): warning C4267: 'argument': conversion from 'size_t' to 'unsigned long', possible loss of data raypier/core\ctracer.cpp(16053): warning C4267: 'argument': conversion from 'size_t' to 'unsigned long', possible loss of data raypier/core\ctracer.cpp(16254): warning C4267: 'argument': conversion from 'size_t' to 'unsigned long', possible loss of data raypier/core\ctracer.cpp(16420): warning C4267: 'argument': conversion from 'size_t' to 'unsigned long', possible loss of data raypier/core\ctracer.cpp(16571): warning C4267: 'argument': conversion from 'size_t' to 'unsigned long', possible loss of data raypier/core\ctracer.cpp(16725): warning C4267: 'argument': conversion from 'size_t' to 'unsigned long', possible loss of data raypier/core\ctracer.cpp(16873): warning C4267: 'argument': conversion from 'size_t' to 'unsigned long', possible loss of data raypier/core\ctracer.cpp(17032): warning C4267: 'argument': conversion from 'size_t' to 'unsigned long', possible loss of data raypier/core\ctracer.cpp(17191): warning C4267: 'argument': conversion from 'size_t' to 'unsigned long', possible loss of data raypier/core\ctracer.cpp(17350): warning C4267: 'argument': conversion from 'size_t' to 'unsigned long', possible loss of data raypier/core\ctracer.cpp(17510): warning C4267: 'argument': conversion from 'size_t' to 'unsigned long', possible loss of data raypier/core\ctracer.cpp(18004): warning C4267: '=': conversion from 'size_t' to 'unsigned long', possible loss of data raypier/core\ctracer.cpp(20328): warning C4244: '=': conversion from 'npy_intp' to 'int', possible loss of data raypier/core\ctracer.cpp(21266): warning C4267: '=': conversion from 'size_t' to 'unsigned long', possible loss of data raypier/core\ctracer.cpp(22918): warning C4244: '=': conversion from 'npy_intp' to 'int', possible loss of data raypier/core\ctracer.cpp(23089): warning C4244: '=': conversion from 'npy_intp' to 'int', possible loss of data raypier/core\ctracer.cpp(24267): warning C4018: '<': signed/unsigned mismatch raypier/core\ctracer.cpp(33064): warning C4018: '<': signed/unsigned mismatch raypier/core\ctracer.cpp(33185): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data raypier/core\ctracer.cpp(33296): warning C4018: '<': signed/unsigned mismatch raypier/core\ctracer.cpp(33318): warning C4244: '=': conversion from 'pyx_t_5numpy_int64_t' to 'unsigned int', possible loss of data raypier/core\ctracer.cpp(33543): warning C4018: '<': signed/unsigned mismatch raypier/core\ctracer.cpp(33673): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data raypier/core\ctracer.cpp(33784): warning C4018: '<': signed/unsigned mismatch raypier/core\ctracer.cpp(33806): warning C4244: '=': conversion from 'pyx_t_5numpy_int64_t' to 'unsigned int', possible loss of data raypier/core\ctracer.cpp(34056): warning C4267: '=': conversion from 'size_t' to 'int', possible loss of data raypier/core\ctracer.cpp(34145): warning C4267: 'argument': conversion from 'size_t' to 'unsigned int', possible loss of data raypier/core\ctracer.cpp(34854): warning C4267: '=': conversion from 'size_t' to 'int', possible loss of data raypier/core\ctracer.cpp(34964): warning C4267: 'argument': conversion from 'size_t' to 'unsigned int', possible loss of data C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\bin\HostX86\x64\link.exe /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO /LIBPATH:C:\Users\Jonas.conda\envs\mypython38\libs /LIBPATH:C:\Users\Jonas.conda\envs\mypython38\PCbuild\amd64 "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\ATLMFC\lib\x64" "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\lib\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\lib\um\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\ucrt\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.18362.0\um\x64" /EXPORT:PyInit_ctracer build\temp.win-amd64-3.8\Release\raypier/core\ctracer.obj /OUT:build\lib.win-amd64-3.8\raypier\core\ctracer.cp38-win_amd64.pyd /IMPLIB:build\temp.win-amd64-3.8\Release\raypier/core\ctracer.cp38-win_amd64.lib /openmp LINK : warning LNK4044: unrecognized option '/openmp'; ignored Creating library build\temp.win-amd64-3.8\Release\raypier/core\ctracer.cp38-win_amd64.lib and object build\temp.win-amd64-3.8\Release\raypier/core\ctracer.cp38-win_amd64.exp Generating code Finished generating code

Jonas231 commented 2 years ago

Hi Bryan,

could you describe a test please how to find out if the performance is like you know it from linux? "I've got it running on a Win10 guest VM. It's rather slow and the compiler-output suggests it's not using OpenMP for full CPU utilisation (maybe the Win64 compiler flags for openmp are different to gcc/linux.). The EFieldProbe object doesn't seem to be rendering properly but I'm not sure if this is a platform issue or a bug in my VM OpenGL drivers (software-rendering only). If you have a proper graphics card and OpenGL installed, it should run much better. I don't have any non-virtual Windows PCs." Is there an example I can try out (where you know how long it should take)?

I tried out "ctracer_demo.py". traced in 0.09140825271606445 time: 0.950396000000012

Kind regards, Jonas

bryancole commented 2 years ago

Hi Jonas,

Good job getting it working. I'm afraid the examples and tests are a bit of a random collection of models from the dim and distant past, as well as some more up-to-date ones. I need to go through these and delete the crappy ones.

I was testing using the zernike_distortion_example.py https://github.com/bryancole/raypier_optics/blob/master/examples/zernike_distortion_example.py for testing, since this exercises the Gaussian beamlet E-field evaluation. If you can run this, you can see if you get something similar to that shown in the docs: https://raypier-optics.readthedocs.io/en/latest/distortions.html . I'm very interested to know if E-field probe visualisation is rendering correctly for you.

In general, the actual ray-tracing is very fast. The slow bit is the evaluation of the E-field over many points (i.e. a 100x100 image is 10000 field-evaluations). The field-calculation is usually an order of magnitude slower than the ray-tracing (for simple models, at least). The ray-tracing is (so far) single-threaded. The E-field evaluation is multi-threaded and will utilise all your CPU cores. Making the ray-traying multi-core is on my todo list but to be honest I've yet to run into a situation where I cared about speed enough to want to put in the time to implement it.

One the machine I did the Win10 work on, changing the Zurnike coefficients (see the Constraints tab) triggers re-calculation of the E-field image which took about 2.4s per update once I got OpenMP working. This seemed slow but when I reverted back to my linux desktop (on the same machine), I saw more-or-less the same performance. The code is CPU-bound and it runs natively on the CPU whether in the VM or on the host. Note, this machine is quite old and low-performance. On my home desktop (a AMD Ryzen 3 3100, a more modern but budget CPU) I get a field calculation time of 0.4s.

I'd be happy to hear what optical problems you have in mind you using Raypier; real-world use-cases provide helpful guidance as to where it can best be improved.

Regards, Bryan

On Thu, Aug 26, 2021 at 7:33 PM Jonas231 @.***> wrote:

Hi Bryan,

could you describe a test please how to find out if the performance is like you know it from linux? "I've got it running on a Win10 guest VM. It's rather slow and the compiler-output suggests it's not using OpenMP for full CPU utilisation (maybe the Win64 compiler flags for openmp are different to gcc/linux.). The EFieldProbe object doesn't seem to be rendering properly but I'm not sure if this is a platform issue or a bug in my VM OpenGL drivers (software-rendering only). If you have a proper graphics card and OpenGL installed, it should run much better. I don't have any non-virtual Windows PCs." Is there an example I can try out (where you know how long it should take)?

I tried out "ctracer_demo.py". traced in 0.09140825271606445 time: 0.950396000000012

Kind regards, Jonas

— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub https://github.com/bryancole/raypier_optics/issues/2#issuecomment-906645674, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABYLNU3R7TJTKTZH6ZRZWDT62CIBANCNFSM5CASTMPQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email .

Jonas231 commented 2 years ago

Hi Bryan, thank you for this detailed answer. I tried your zernike_distortions_example.py. I had to install chaco first: conda install -c dbanas chaco

I have a Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz 1.80 GHz on a notebook (no external graphics card, so when I change a constaint it is very slow in rendering the changes):

trace Field calculation took: 3.2809999999881256 s Face changed TraitChangeEvent(object=<raypier.faces.DistortionFace object at 0x000001AED3DBEEA0>, name='updated', old=, new=True) trace Field calculation took: 2.98499999998603 s

It seems to be rendered correctly! I have to drop in your extensive docs (I haven't seen it before!) grafik

"I'd be happy to hear what optical problems you have in mind you using Raypier; real-world use-cases provide helpful guidance as to where it can best be improved."

This is where I have to describe my interest in my collection of repos here on github (related to optical design, raytracing and optical simulation). I am working as an optical engineer with OpticStudio and FRED (I did even use FRED's Gaussian beam decomposition feature) regularly. In my work I carry out optical simulations of freeform optical systems (consisting of tilted polynomial surfaces, i.e. automotive HUDs, optical systems which are not rotationally symmetric). I like to automate things with python (e.g. ZEMAX's ZOS API) and other macro languages. For me it is sometimes frustrating to work with programs which are not open source and make a secret of their algorithms (I would like to understand what is done). I like the scripting approach. I like interactive 3d rendering of an optical system after a script command was entered. In short I like many things about KDP-2 (www.ecalculations.com, an open source Fortran optical design code). I do not know Fortran and I think it would take a lifetime to understand the code (the implementation is not up to date - not object-oriented - not well documented). I dream for a while of contributing to such a code (a modernized pythonic version, maybe accelarated with cython or numba, python because of interactive programming and vast amount of packages like scipy). A GUI with buttons is not what I consider most important, rather a view of the optical system and a well searchable documentation of the commands needed. I thought about pyvistaqt for visualization. In this way the IPython console could be used interactively. I did not know about tvtk. I noted that in raypier once your system has been set up you cannot use the IPython console anymore (maybe the shell obj?). I think raytracing should consider the general case of non-sequential. All components e.g. surfaces described by extended polynomials (how would you implement those in raypier?) should be defined relative to local coordinate systems (described by homogeneous transformation matrices). An option to define sequential raypaths within such a system would be nice. I like the tree of objects in raypier on the right side. I think an additional text file format from which to load an already specified setup would be helpful. Perhaps it could even contain the original python script used to create the system. I think it is very important to always know what was done to reach a certain setup (a sort of history). Do you plan to include tools for optimization in raypier? How would you define operands based on ctracer and then minimize a merit function? The next thing I like about raypier is that you implemented Gaussian beam decomposition. Now and in the future nano-scaled sub-components of optical systems (will) require wave optical modelling and conversion between waves and rays or field-tracing (https://www.tandfonline.com/doi/abs/10.1080/09500340.2010.532237, https://www.wyrowski-photonics.com). I know an open source non-sequential raytracer like pyoptools (https://pyoptools.readthedocs.io/en/latest/description.html) without optimizer. I think some sort of NURBS raytracing (e.g. IGES surfaces) should be part of any non-sequential raytracer it would allow stray light simulations considering housings, apertures, covers, etc.) I know an open source sequential raytracer like pyrate (https://salsa.debian.org/mess42/pyrate/) with optimizer and there are several others. I know of no open source field-tracing package. So these are many things my favourite open source optical package would have. I am not sure that I got the priorities right. Considering raypier it would be most interesting to know how to implement new optical shapes and components (based e.g. on polynomials) and maybe how to define operands as a basis for future optimizer (based on scipy). I am certainly interested in contributing which would of course require to understand the structure of your code better.

Kind regards, Jonas

bryancole commented 2 years ago

Wow. Thanks! A very interesting post. Lot's to discuss here. Rather the continuing posting on this github issue, I propose we move our discussion to the 'raypier-optics' group list (https://groups.google.com/g/raypier). I will cut-n-paste your post there, if that's ok with you? I think I can probably close the original issue since the Windows build issues are resolved.

Bryan

On Sat, Aug 28, 2021 at 8:32 PM Jonas231 @.***> wrote:

Hi Bryan, thank you for this detailed answer. I tried your zernike_distortions_example.py. I had to install chaco first: conda install -c dbanas chaco

I have a Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz 1.80 GHz on a notebook (no external graphics card, so when I change a constaint it is very slow in rendering the changes):

trace Field calculation took: 3.2809999999881256 s Face changed TraitChangeEvent(object=<raypier.faces.DistortionFace object at 0x000001AED3DBEEA0>, name='updated', old=, new=True) trace Field calculation took: 2.98499999998603 s

It seems to be rendered correctly! I have to drop in your extensive docs (I haven't seen it before!) [image: grafik] https://user-images.githubusercontent.com/38330725/131227836-7e63b2ec-c7a0-427f-a889-c6577a247277.png

"I'd be happy to hear what optical problems you have in mind you using Raypier; real-world use-cases provide helpful guidance as to where it can best be improved."

This is where I have to describe my interest in my collection of repos here on github (related to optical design, raytracing and optical simulation). I am working as an optical engineer with OpticStudio and FRED (I did even use FRED's Gaussian beam decomposition feature) regularly. In my work I carry out optical simulations of freeform optical systems (consisting of tilted polynomial surfaces, i.e. automotive HUDs, optical systems which are not rotationally symmetric). I like to automate things with python (e.g. ZEMAX's ZOS API) and other macro languages. For me it is sometimes frustrating to work with programs which are not open source and make a secret of their algorithms (I would like to understand what is done). I like the scripting approach. I like interactive 3d rendering of an optical system after a script command was entered. In short I like many things about KDP-2 (www.ecalculations.com, an open source Fortran optical design code). I do not know Fortran and I think it would take a lifetime to understand the code (the implementation is not up to date - not object-oriented - not well documented). I dream for a while of contributing to such a code (a modernized pythonic version, maybe accelarated with cython or numba, python because of interactive programming and vast amount of packages like scipy). A GUI with buttons is not what I consider most important, rather a view of the optical system and a well searchable documentation of the commands needed. I thought about pyvistaqt for visualization. In this way the IPython console could be used interactively. I did not know about tvtk. I noted that in raypier once your system has been set up you cannot use the IPython console anymore (maybe the shell obj?). I think raytracing should consider the general case of non-sequential. All components e.g. surfaces described by extended polynomials (how would you implement those in raypier?) should be defined relative to local coordinate systems (described by homogeneous transformation matrices). An option to define sequential raypaths within such a system would be nice. I like the tree of objects in raypier on the right side. I think an additional text file format from which to load an already specified setup would be helpful. Perhaps it could even contain the original python script used to create the system. I think it is very important to always know what was done to reach a certain setup (a sort of history). Do you plan to include tools for optimization in raypier? How would you define operands based on ctracer and then minimize a merit function? The next thing I like about raypier is that you implemented Gaussian beam decomposition. Now and in the future nano-scaled sub-components of optical systems (will) require wave optical modelling and conversion between waves and rays or field-tracing ( https://www.tandfonline.com/doi/abs/10.1080/09500340.2010.532237, https://www.wyrowski-photonics.com). I know an open source non-sequential raytracer like pyoptools ( https://pyoptools.readthedocs.io/en/latest/description.html) without optimizer. I think some sort of NURBS raytracing (e.g. IGES surfaces) should be part of any non-sequential raytracer it would allow stray light simulations considering housings, apertures, covers, etc.) I know an open source sequential raytracer like pyrate ( https://salsa.debian.org/mess42/pyrate/) with optimizer and there are several others. I know of no open source field-tracing package. So these are many things my favourite open source optical package would have. I am not sure that I got the priorities right. Considering raypier it would be most interesting to know how to implement new optical shapes and components (based e.g. on polynomials) and maybe how to define operands as a basis for future optimizer (based on scipy). I am certainly interested in contributing which would of course require to understand the structure of your code better.

Kind regards, Jonas

— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub https://github.com/bryancole/raypier_optics/issues/2#issuecomment-907678549, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABYLNXIESNTJSUGF3PXGRTT7E2VJANCNFSM5CASTMPQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Jonas231 commented 2 years ago

Sure

Jonas231 commented 2 years ago

Sure

leo91chen commented 2 years ago

Hi Jonas: I am also trying to study with raypier, but i still have some issue in installation on win10. I built raypier with raypier_optics-master>python setup.py install, but Demos doesn‘t work(ModuleNotFoundError: No module named 'raypier.core.ctracer'). As you mentioned "and copied it into: C:\Users\Jonas.conda\envs\mypython38\Lib", can you explain what exactly to do affter the build process?

Regards, Chen

bryancole commented 2 years ago

Hi Chen,

I can't test on Windows until tomorrow. I don't usually run a "python setup.py install" myself and didn't test this yet on Windows so there's probably an issue somewhere in the setup.py file. I have just tested on my linux system / conda env, and the installed library seems to work fine. Until we can get this fixed, I recommend building in place: i.e. run "python setup.py build_ext --inplace". This will leave the compiled libraries in the repo source-folders. You can then add the path to the local repository root to your PYTHONPATH, and then raypier should import fine. I'm assuming your build completes without error (since you didn't mention any error from the build/install command). However, sometimes it's not obvious if an error has occured so feel free to post the full output of your "python setup.py install" command here; this will help us trace the problem. Also, if you can describe your python environment, that also useful info (if you're using conda, attach the output of "conda env export"). Finally, if it does turn out that there was a build-problem, you could try the raypier wheel I posted on github: https://github.com/bryancole/raypier_optics/releases/download/0.2.3/raypier-0.2.3-cp38-cp38-win_amd64.whl

Bryan

bryancole commented 2 years ago

As an update, I tested "python setup.py install" on my Win10 VM and it worked as intended. If you are using a conda environment (and you'd be crazy not to), you should ensure you are running the examples from a command prompt with the conda env activated. To test, I open an "Anaconda powershell console" window (from the Windows Start menu), then I activate my raypier python environment (into which I previously installed raypier via python-setup.py-install), then cd to the examples folder, then run "python zernike_distortions_example.py". If you are running the examples for some type of IDE, check that the IDE is calling the right python executable (from your env) and has the PYTHONPATH and execution PATH veriables set as appropriate for the env. I use eclipse+pydev for my IDE and can configure conda envs as runtime environments. I'm not experienced with other IDEs on Windows.

leo91chen commented 2 years ago

Hi bryan~

Finally the demo scripts work out on my win10 PC! I tried to use "enviroment_win64.yml" to create an conda enviroment, and "python setup.py install" to install the package. Seems "enviroment_win64.yml" works good with win10 and the cython "sqrt" problem has been fixed nicely. the only problem is when is try to to open "raypier_optics-master" as a pycharm project dir, then the demo scripts won't work (import error, can't find raypier.xxx ), I have to open superior path as pycharm Project dir to make demo script work. forgive my poor language : ), appropriate your works, thanks for your reply.

Regards Chen

Jonas231 commented 2 years ago

Hi Bryan, somehow I cannot answer in google groups. Could you please allow me in? Regards, Jonas

bryancole commented 2 years ago

Hi Jonas,

Sorry about that. There was one pending user which I had not noticed. I guess this was you. Hopefully, you can post now.

Bryan

On Thu, Nov 11, 2021 at 8:42 PM Jonas231 @.***> wrote:

Hi Bryan, somehow I cannot answer in google groups. Could you please allow me in? Regards, Jonas

— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub https://github.com/bryancole/raypier_optics/issues/2#issuecomment-966611159, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABYLNSPFWKZWZDH6J5OSN3ULQTBVANCNFSM5CASTMPQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.