Skip to main content
https://img.shields.io/badge/License-LGPL%20v2.1-blue.svg https://github.com/aewallin/opencamlib/actions/workflows/test.yml/badge.svg Documentation Status

Introduction

OpenCAMLib (ocl) is a library for creating 3D toolpaths for CNC-machines such as mills and lathes. It is written in C++ and has bindings for Python, Node.js and the browser. At the moment it supports the following algorithms:

Drop-cutter

The drop cutter algorithm drops a cutter, positioned at a predefined (x,y) location, until it touches the 3D model.

Drop Cutter

Push-cutter

The Push-cutter is used to create a Waterline toolpath that follows the shape of the model at a constant z-height in the xy-plane.

Push Cutter

Cutters

The algorithms listed above can be used with following cutters:

  • CylCutter (flat end mill / cylindrical)

  • BallCutter (ball end mill / spherical)

  • BullCutter (radius end mill / toroidal)

  • ConeCutter (tapered end mill / conical)

  • CompositeCutter (combinations of the above / compound)

From August 2018 OpenCAMLib is released under LGPL license.

Pre-compiled Libraries

OpenCAMLib provides pre-compiled C++, Node.js and Python libraries for the following platforms and architectures:

Windows

ia32 / x64

macOS

x86_64 / arm64

Linux

x86_64 / aarch64

  • The Python library is called opencamlib and is hosted on PyPi (pypi.org), precompiled libraries are available for Python v3.7 up to v3.11.

  • The Node.js + emscripten library is called @opencamlib/opencamlib and is hosted on npm (npmjs.org), precompiled libraries are available for Node-API v3 and up.

  • The C++ library is called libocl and is hosted on our Github Releases page.

Python

The Python library (hosted on PyPi) can be installed like this:

pip install opencamlib

On some platforms, pip is called pip3, you might have to run:

pip3 install opencamlib

Note that pip / pip3 is will install packages for to the system installation of Python, if you want to install a package in a custom Python installation that is not in your $PATH (for example, the Python which comes with Blender), you can install packages like so:

/path/to/your/custom/python -m pip install opencamlib

Lastly, if you don’t know where Python is, but you have access to it’s interpreter (FreeCAD and Blender both have a Python console), you can simply enter this command in there to install opencamlib:

import sys; import subprocess; subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'opencamlib'])

JavaScript

The JavaScript library (hosted on npm) works in Node.js and the browser (by leveraging emscripten / WASM) can be installed like this:

npm install --save @opencamlib/opencamlib

Or, using yarn:

yarn add @opencamlib/opencamlib

C++

Precompiled C++ libraries are available on the Github Releases page (https://github.com/aewallin/opencamlib/releases). This project also installs a OpenCAMLibConfig.cmake, which, if your project uses CMake, allows you to use find_package(OpenCAMLib REQUIRED). You can see an example of that in use over here: examples/cpp/test/CMakeLists.txt

Building from Source

Having trouble with a pre-compiled library? Please report it to us. If there are no pre-compiled libraries for your platform or architecture, or want to customize or package opencamlib, this is for you.

OpenCAMLib uses functionality from a library called Boost. For the Python library it uses an extra library called Boost.Python.

Only the Python bindings need Boost to be compiled (with Boost.Python). All other libraries DO NOT need Boost to be compiled, in those cases, a headers only version will suffice. So, if you are not compiling the Python libraries, simply download Boost, extract it into a folder, and tell CMake where to look for it.

Make sure to download Boost from the boost.org downloads page, if you download it from github, you have to make sure to install the git submodules and build the headers.

We provide a install.sh script that helps with installation of dependencies and building OpenCAMLib libraries, you might want to take a look at it first. You can run ./install.sh --help to look at the available options, or inspect it’s source code to find out more.

Dependencies

To compile OpenCAMLib, you need:

  • C++ compiler (It should at least support C++ 14)

  • Git (This is used for cloning the repository, and the emscripten SDK)

  • CMake (At least version 3.15)

  • Boost (When compiling the Python library, you have to compile Boost.Python for your Python version after installation)

At this time of writing, here are the packages to install:

Ubuntu Dependencies

sudo apt install -y git cmake curl build-essential libboost-dev

macOS Dependencies

brew install git cmake curl boost python@3.11 boost-python3

Windows Dependencies

Install

By downloading the installers from the internet, or by using your package manager.

Building for C++

The C++ library is the easiest to build, it only depends on Boost’s headers. Make sure you have a compiler, git, cmake and Boost installed (or simply download and extract it somewhere).

git clone https://github.com/aewallin/opencamlib
cd opencamlib
mkdir build
cd build
cmake .. -D CXX_LIB="ON"
make . # try make -j4 for a faster build if you have a multi-core machine
make install .

When boost is not in a standard location, you can add the -D BOOST_ROOT=/path/to/boost option to the cmake command.

Building for Emscripten

To compile the emscripten library, first download, install and activate it using the following commands:

git clone https://github.com/emscripten-core/emsdk.git
cd emsdk
./emsdk install latest
./emsdk activate latest

Now you can compile opencamlib like this (make sure to replace the path/to/ sections):

source path/to/emsdk/emsdk_env.sh
git clone https://github.com/aewallin/opencamlib
cd opencamlib
mkdir build
cd build
emcmake cmake \
  -D CMAKE_BUILD_TYPE="Release" \
  -D BUILD_EMSCRIPTEN_LIB="ON" \
  -D USE_OPENMP="OFF" \
  -D CMAKE_INSTALL_PREFIX="/path/to/opencamlib/src/npmpackage/build" \
  -D BOOST_ROOT="/path/to/boost" \
  ..
emmake make # try emmake make -j4 for a faster build if you have a multi-core machine

Note that USE_OPENMP has been turned off, OpenMP is not supported with Emscripten at the moment

Building for Node.js

To compile the Node.js library, install the dependencies in src/nodejslib:

cd src/nodejslib
npm install

Next, use cmake-js to compile the library:

git clone https://github.com/aewallin/opencamlib
cd opencamlib
mkdir build
cd build
../src/nodejslib/node_modules/.bin/cmake-js \
  build \
  --directory ".." \
  --out "." \
  --parallel 4 \
  --CD BUILD_NODEJS_LIB="ON" \
  --CD USE_OPENMP="ON" \
  --CD CMAKE_INSTALL_PREFIX="/path/to/opencamlib/build/Release/$(node --print 'process.platform')-nodejs-$(node --print 'process.arch')" \
  --CD BOOST_ROOT="/path/to/boost" \
  --config "Release"

Building for Python

The Python library can be compiled similarly to the C++ example above, however, this time Boost.Python has to be compiled first. Most systems have Boost.Python available as a download, but only for a specific Python version only (usually the latest Python version). These might work if you are using Python from the same package, unfortunately, this is not a very reliable method, so compiling them yourself is usually the best option.

First, download and extract Boost:

curl "https://boostorg.jfrog.io/artifactory/main/release/1.80.0/source/boost_1_80_0.tar.gz" --output "boost_1_80_0.tar.gz" --location
tar -zxf boost_1_80_0.tar.gz -C /tmp/boost
cd /tmp/boost/boost_1_80_0

Now we can compile it:

echo "using python ;" > ./user-config.jam
./bootstrap.sh
./b2 \
  -a \
  threading="multi" \
  -j4 \
  variant="release" \
  link="static" \
  address-model="64" \
  architecture="x86" \
  --layout="system" \
  --with-python \
  --user-config="./user-config.jam" \
  cxxflags="-fPIC" \
  stage

Note that you can customize the user-config.jam file to point it to your Python installation (see: https://www.boost.org/doc/libs/1_78_0/libs/python/doc/html/building/configuring_boost_build.html). You should also specify the correct architecture and address-model. On windows, make sure to use windows style paths, e.g. C:\\path\\to\\Python

Usage

Please take a look at the examples/ folder on how to use OpenCAMLib. For each language there is an example named test which calls all of the algorithms.

Common Problems

Compiling OpenCAMLib is unfortunately not very easy and there are many things that can go wrong. Here is a list of common problems and solutions.

Could NOT find Boost (missing: Boost_INCLUDE_DIR)

This happens a lot, here are some of the reasons why this happens:

You don’t have Boost installed.

If you forgot to install boost, go ahead and download Boost from from their website: https://www.boost.org/users/download/ and extract it somewhere. Now, when compiling the C++ or node.js module, add the

-D BOOST_ROOT=/path/to/extracted/boost flag to the cmake .. command, or the.

--boost-prefix /path/to/extracted/boost flag to the ./install.sh command

You installed Boost from Github.

The boost that is hosted on Github does not have the headers yet! To compile those, you should run the following commands:

./bootstrap.sh
./b2 headers

Your CMake version has a FindBoost module which is unaware of your Boost’s version.

The CMake module that looks for Boost, is usually not aware of the existence of the latest Boost versions. You can help it by providing the version number of your Boost with the -D Boost_ADDITIONAL_VERSIONS="1.80.0" flag. Make sure to change 1.80.0 with your version of Boost.

It can also be helpfull to enable Boost_DEBUG in the CMake configuration.

Cross Compiling

To compile OpenCAMLib for other architectures, we recommend the following strategies. Always make sure to compile Boost for the correct architecture as well!

macOS

Cross compiling on macOS is possible by setting the CMake CMAKE_OSX_ARCHITECTURES flag. When using the install.sh script, you can use the --macos-architecture flag to accomplish the same thing. Make sure to take a look at the other --*-architecture flags when cross compiling.

Windows

Cross compiling on Windows is possible by using the “Visual Studio” generator (default) and by setting the CMake CMAKE_GENERATOR_PLATFORM flag. When using the install.sh script, you can use the --cmake-generator-platform flag to accomplish the same thing. Make sure to take a look at the other --*-architecture flags when cross compiling.

Linux

To ensure that compiled libraries work on older linux versions, it has to be compiled with an older Glibc version. The easiest way to accomplish this is by using Docker, there are images available especially for this purpose. When using the install.sh script, you can use the --docker-image flag which will make the command run in a container with the given image name.

C++ docker image

When cross compiling the C++ library, make sure to use an old Glibc, this is included in the dockcross docker images. For a list of supported architectures, take a look at:

https://github.com/dockcross/dockcross#summary-cross-compilers

Node.js docker image

Cross compilers for node.js are available here:

https://github.com/prebuild/docker-images

Python docker image

Cross compilers for python are here:

https://github.com/pypa/manylinux#manylinux2014-centos-7-based

Organization of Files

(generate this with ‘tree -dL 2’):

├── docs                        documentation (not much here yet!)
├── examples                    c++, emscripten, nodejs and python examples
├── scripts                     CI scripts for installing and building ocl
├── src
│   ├── algo                    algorithms under development
│   ├── common                  common algorithms and data-structures
│   ├── cutters                 cutter-classes
│   ├── cxxlib                  c++ library cmake config
│   ├── deb                     debian package cmake config
│   ├── dropcutter              drop-cutter algorithms and operations
│   ├── emscriptenlib           bindings for emscripten library
│   ├── geo                     primitive geometry classes (point, triangle, stlsurf, etc.)
│   ├── nodejslib               Node.js library bindings and cmake config
│   ├── npmpackage              combined Node.js and emscripten wrappers, for publishing to npm
│   ├── pythonlib               python library bindings and cmake config
└── stl                         STL files for testing

Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

opencamlib-2022.12.17-cp311-cp311-win_amd64.whl (270.5 kB view details)

Uploaded CPython 3.11Windows x86-64

opencamlib-2022.12.17-cp311-cp311-win32.whl (257.3 kB view details)

Uploaded CPython 3.11Windows x86

opencamlib-2022.12.17-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (682.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

opencamlib-2022.12.17-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (672.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

opencamlib-2022.12.17-cp311-cp311-macosx_11_0_arm64.whl (654.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

opencamlib-2022.12.17-cp311-cp311-macosx_10_9_x86_64.whl (721.2 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

opencamlib-2022.12.17-cp310-cp310-win_amd64.whl (270.5 kB view details)

Uploaded CPython 3.10Windows x86-64

opencamlib-2022.12.17-cp310-cp310-win32.whl (257.3 kB view details)

Uploaded CPython 3.10Windows x86

opencamlib-2022.12.17-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (682.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

opencamlib-2022.12.17-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (672.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

opencamlib-2022.12.17-cp310-cp310-macosx_11_0_arm64.whl (654.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

opencamlib-2022.12.17-cp310-cp310-macosx_10_9_x86_64.whl (721.2 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

opencamlib-2022.12.17-cp39-cp39-win_amd64.whl (270.5 kB view details)

Uploaded CPython 3.9Windows x86-64

opencamlib-2022.12.17-cp39-cp39-win32.whl (257.3 kB view details)

Uploaded CPython 3.9Windows x86

opencamlib-2022.12.17-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (682.9 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

opencamlib-2022.12.17-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (673.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

opencamlib-2022.12.17-cp39-cp39-macosx_11_0_arm64.whl (655.0 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

opencamlib-2022.12.17-cp39-cp39-macosx_10_9_x86_64.whl (721.3 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

opencamlib-2022.12.17-cp38-cp38-win_amd64.whl (270.6 kB view details)

Uploaded CPython 3.8Windows x86-64

opencamlib-2022.12.17-cp38-cp38-win32.whl (257.3 kB view details)

Uploaded CPython 3.8Windows x86

opencamlib-2022.12.17-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (683.0 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

opencamlib-2022.12.17-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (673.0 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

opencamlib-2022.12.17-cp38-cp38-macosx_11_0_arm64.whl (655.2 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

opencamlib-2022.12.17-cp38-cp38-macosx_10_9_x86_64.whl (721.4 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

opencamlib-2022.12.17-cp37-cp37m-win_amd64.whl (267.7 kB view details)

Uploaded CPython 3.7mWindows x86-64

opencamlib-2022.12.17-cp37-cp37m-win32.whl (257.1 kB view details)

Uploaded CPython 3.7mWindows x86

opencamlib-2022.12.17-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (671.7 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

opencamlib-2022.12.17-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (663.9 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ ARM64

opencamlib-2022.12.17-cp37-cp37m-macosx_10_9_x86_64.whl (711.0 kB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

File details

Details for the file opencamlib-2022.12.17-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for opencamlib-2022.12.17-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8616cc9b085d2b37e6640959f8bba9cacb10d89ec0a5baff1e9fba8ba384208b
MD5 b2f34910713b0d898e76efcb043c53bb
BLAKE2b-256 825998bda0d20f6b30ea33239420771a9e75f178dc7542464c8452432d22037c

See more details on using hashes here.

File details

Details for the file opencamlib-2022.12.17-cp311-cp311-win32.whl.

File metadata

File hashes

Hashes for opencamlib-2022.12.17-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 0cc227742536304bc66c0dc2dbc0ef1a1df746b49e19c9def741e07f67a56e41
MD5 c5696005651355b98c97309ff480692a
BLAKE2b-256 a17ceaf269e039c5ba3849fe418cc3ab0575d6a4fa16b0a57ec7c7a3162e718b

See more details on using hashes here.

File details

Details for the file opencamlib-2022.12.17-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for opencamlib-2022.12.17-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 03415cd6c96c6243ca0ecbb40a56c80ac0a798c8affa36c5b859e7a450be0d23
MD5 565ee02e2e244da4612b3174c2f5ce33
BLAKE2b-256 c33732943ad76ec342abc7e491081017952fece352ab62355a7640d64a5907e7

See more details on using hashes here.

File details

Details for the file opencamlib-2022.12.17-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for opencamlib-2022.12.17-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dc932c360f64dff30161171a2f9a3c3218c17aaf471cfc4de9a6e8270e00ff6f
MD5 a14fd0c4f4bfede6a7493a5509fb7c03
BLAKE2b-256 c1fea45439cd6adf4939130caef2b1bba0f4b3f269e0178fd6ad655e4b5c288f

See more details on using hashes here.

File details

Details for the file opencamlib-2022.12.17-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for opencamlib-2022.12.17-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6d5b751c387ed1fe0a6ff22fc882181656fd2686953de757c72d371b1151d515
MD5 df4407913fad26253826ec16e8108be8
BLAKE2b-256 f850fbafe75fec3ac96314fa977c58f3cd0d33d8c0544cee3639b2f20e6973f3

See more details on using hashes here.

File details

Details for the file opencamlib-2022.12.17-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for opencamlib-2022.12.17-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 713151ea38fe630693b5b1c267fb91dd3136ff61a84093765ec6ae0298e720fe
MD5 ce1d4923c2a29e4ed02e23971e7e15e9
BLAKE2b-256 f3ec4e72a77fca06e8048f0d766394a43fb9188b064421a0b628fae22ee94518

See more details on using hashes here.

File details

Details for the file opencamlib-2022.12.17-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for opencamlib-2022.12.17-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 7c74d05d5e8cea1300ee73815b690bb088983dff9bfb0e6bd08705d92a7cecc3
MD5 6f1c9ec0199c5a7374e0540ff4692a3f
BLAKE2b-256 4b24a9c9980494a8a72f026f5e6c6ce6f0901417681873ccf04fa89dc7ac990f

See more details on using hashes here.

File details

Details for the file opencamlib-2022.12.17-cp310-cp310-win32.whl.

File metadata

File hashes

Hashes for opencamlib-2022.12.17-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 d133d36ff057c8f75817eb2ed425596358fac7d9c18e5ead1c817fec2aef6aa5
MD5 33f178878350def2152d013b93841015
BLAKE2b-256 c3463a595efef4e2ee0cac70da68a908a59b44a358fdab94e830500b94bf8a4f

See more details on using hashes here.

File details

Details for the file opencamlib-2022.12.17-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for opencamlib-2022.12.17-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a9edd1746861b6406898d9190739ba00ee609a2a41ab659bb7404f573ae969ca
MD5 a56c9fdf4d46f19fd292bfe6318865bf
BLAKE2b-256 e9d9b9ee55991b9037fa55f9bd624fce6ddf9a4e3da34e15e3af8bbdcb26f951

See more details on using hashes here.

File details

Details for the file opencamlib-2022.12.17-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for opencamlib-2022.12.17-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c45f7705e1ee1fbdc9c627afeec98edfbfda722bf50c7b7b4b3714a0e6993309
MD5 327013ebd2bda33267250cf6fdb257e8
BLAKE2b-256 340d60c81415a93c01a03a45d598301178b030009263839dfd4ea9182baf74e3

See more details on using hashes here.

File details

Details for the file opencamlib-2022.12.17-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for opencamlib-2022.12.17-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f1aa1cea0bf24f2c1623a4a5b3141d8934f0673b627cc0a8056b64662637e476
MD5 76db0d7a570ba4a5b9eaf7e5e499f63c
BLAKE2b-256 2832a906e0808cf62a44ac9c48731ad277a6720c4ca7da39a5ee738bb9031937

See more details on using hashes here.

File details

Details for the file opencamlib-2022.12.17-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for opencamlib-2022.12.17-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ca1c648b03d7468fe53b24821745977fb135d6b98c595359fe94b7bcb158e5c7
MD5 df1af3bda4e31aac9332240e6f902e88
BLAKE2b-256 e19dea30646b523e5b8f5d395924e2b596e3a0ad9aab591f0cae8b34a138a97a

See more details on using hashes here.

File details

Details for the file opencamlib-2022.12.17-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for opencamlib-2022.12.17-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 bfa3ec783bd177d6e52646025bee2856f6c1cdffa79c3561cf97935313757a16
MD5 6eafd2d96071024293c4b0f1021d0f64
BLAKE2b-256 c45a971dff05c561643f0d01617413b5f8a8cfb2bdd5f779a4e545d6a539203a

See more details on using hashes here.

File details

Details for the file opencamlib-2022.12.17-cp39-cp39-win32.whl.

File metadata

  • Download URL: opencamlib-2022.12.17-cp39-cp39-win32.whl
  • Upload date:
  • Size: 257.3 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for opencamlib-2022.12.17-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 3bfbbbe5d529fd12ab35a946ad3d6c4066cc0599d1839bbd0a4bd56f8b6c8c52
MD5 5c08fbb03c1ca65acc7d510830978403
BLAKE2b-256 24771e9132e9c3811369c0e8936c9dd6bb1101c2eccc2a67cb4ef98e6ce13b21

See more details on using hashes here.

File details

Details for the file opencamlib-2022.12.17-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for opencamlib-2022.12.17-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7eaa7c945ffb006833dcbba1db386a5c7f0278e0f0def1501356e082ada9f0a8
MD5 94cc44a7ac9c7369818f60814745764b
BLAKE2b-256 7b2ccb8de930d80a63a114d501bc74930c2428e08ffa01f8f093beb4ea5192e0

See more details on using hashes here.

File details

Details for the file opencamlib-2022.12.17-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for opencamlib-2022.12.17-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 62bfa745724b3c06ac287543e1f0f49262ecc1cf57aa7133c1d26a38f7c1f950
MD5 f19e2de56c6ee3692b360455ea324cbc
BLAKE2b-256 64ad3e2a701b7ab04279dd837a33feeaf1e421eea9ef9ccaf1ffc54f4ab28e02

See more details on using hashes here.

File details

Details for the file opencamlib-2022.12.17-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for opencamlib-2022.12.17-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 64fc66c0962b511235542d070002a94ab721d0dd4952e8fb3a06179f9f5907d5
MD5 09ef0c8f5c38993decd3d979d931602f
BLAKE2b-256 600be47dceaf14c6f39ed656a0518055b078483385261515d6712ce97f7359f1

See more details on using hashes here.

File details

Details for the file opencamlib-2022.12.17-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for opencamlib-2022.12.17-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 249c8ce577bbda8b541f1c7b8d746d4cab93110ad6762582cdefa5afbb4d911f
MD5 217af4756e7b443aa42b27de99d1e5b8
BLAKE2b-256 41ad98c1679786b00867df95336c2282e10a53c3c6bc590abe5d4f2ad9541d34

See more details on using hashes here.

File details

Details for the file opencamlib-2022.12.17-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for opencamlib-2022.12.17-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 b26466f5d8c43c9c60ccb896c6a4a2561820a0bd765c1011c34013217ed4b767
MD5 752848a249e9aca7df83840c10e1391f
BLAKE2b-256 f17dd8ea7d9007084ff9085090291d30754e9f7f214366d98d0d30c592a58e0c

See more details on using hashes here.

File details

Details for the file opencamlib-2022.12.17-cp38-cp38-win32.whl.

File metadata

  • Download URL: opencamlib-2022.12.17-cp38-cp38-win32.whl
  • Upload date:
  • Size: 257.3 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for opencamlib-2022.12.17-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 3bf2b261d3722080c30ee6b8be391b08c0f2f8df845b8cba8e04e8b6e5b5e691
MD5 c65941c219de760110c883b236050d27
BLAKE2b-256 a28874c5ffec65057fcdf3ff64cfd7c8548ee74461d6f49d3f002b0b5769d95d

See more details on using hashes here.

File details

Details for the file opencamlib-2022.12.17-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for opencamlib-2022.12.17-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a3475c2ce00c5c5df031fe4cd6283360c11c76d4594664bc3b3b10aea0d28171
MD5 0d5455f7492c34604ac197ed42d45374
BLAKE2b-256 9294ae27d06ff417b141a02af3a4cc89684e487c905dd54be3955e0622574e2c

See more details on using hashes here.

File details

Details for the file opencamlib-2022.12.17-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for opencamlib-2022.12.17-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fbf52490340c44d07128d464c2402ee625060383808b70eee5d552167db2a5b2
MD5 5ab7ab99848ba2128064d96fc96a7688
BLAKE2b-256 99e46929f8b8e111301b886e066ad21774c5bb443a1c1391bd35484754bfe32b

See more details on using hashes here.

File details

Details for the file opencamlib-2022.12.17-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for opencamlib-2022.12.17-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2385dea1550ef716e75909dcadf64d30d43946c04fdd96dcad277d07cf8e621a
MD5 b2f7f2b1aca433aaa4508b079fe171e7
BLAKE2b-256 4e31c9fef9debb0a469287f2293586538b59d2fbc778888354d137b907bedfaa

See more details on using hashes here.

File details

Details for the file opencamlib-2022.12.17-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for opencamlib-2022.12.17-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9ba2b78c3cb1cd0f3757ebf0c8e04f3fa11c71319ce820dba94150fc03f13e3f
MD5 165a91b27fed40e6c2b4d03e565e8d62
BLAKE2b-256 4725933f4c0a490724f67cb0091c5945c221250ecf45418d4cd13eb1d3430126

See more details on using hashes here.

File details

Details for the file opencamlib-2022.12.17-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for opencamlib-2022.12.17-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 d7a028f6e8a3d42bb95151fbad5bedc135b898b10fbc1e790e9844db7ccf23ce
MD5 7802a880a4ec39d6d42dd79bf039c616
BLAKE2b-256 058713c7a997b7727ed4b19421890be8be21d4cadfa1ee66cce9cc3739ec8eb3

See more details on using hashes here.

File details

Details for the file opencamlib-2022.12.17-cp37-cp37m-win32.whl.

File metadata

  • Download URL: opencamlib-2022.12.17-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 257.1 kB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for opencamlib-2022.12.17-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 fd551aa4c0867ea04376c17c0c21132ac5e1ebe407a2164e6fa303124771a7c2
MD5 395f55611d16619552460e599ec21dcf
BLAKE2b-256 57ff2c71195527cc70eaace674f1c5214c71974a61e65d0671d9653367311680

See more details on using hashes here.

File details

Details for the file opencamlib-2022.12.17-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for opencamlib-2022.12.17-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8ac0e513aa571c4319254a9bbf273ce139e54ebd252f25798b5c7e4426f0f980
MD5 72586ee63c9385f98bb090f32e5c0e56
BLAKE2b-256 58f4c9c6848204d8425ea930dac441e8df496387f85aa3de2f8fcda0a8dda186

See more details on using hashes here.

File details

Details for the file opencamlib-2022.12.17-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for opencamlib-2022.12.17-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7a54b79982d795f14273b9b86ca050b6b9e62d87c606332013d2cefb6b3cfb94
MD5 732fd80975fb1a4867d382422120053d
BLAKE2b-256 7e2b4604dad17107687d5e5334130b85dda5b14fb2b536390041445d544658a2

See more details on using hashes here.

File details

Details for the file opencamlib-2022.12.17-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for opencamlib-2022.12.17-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 10d83c333c6dca7fd871b3bda7b8807d57f053e6fbf388a63d66e87db2c12f16
MD5 ad463f342064429890dc57c9543a4080
BLAKE2b-256 1cb5196dfb3c6a2c6ced51c93e07ba67d7e25c9f5b83efaff80dcfe831cc5159

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page