Skip to main content

https://opcut.kopic.xyz/

opcut is cutting stock problem optimizer utilizing multiple panels and guillotine cuts (end-to-end cuts). This project includes:

  • multiple back-end optimizer implementations

  • command line front-end

  • REST service API (OpenAPI definition)

  • single-page web application front-end

Git repository is available at https://github.com/bozokopic/opcut.git.

Public instance https://opcut.kopic.xyz/ is constrained with limited resources and should be used only for functionality evaluation purposes. In case of complex and repetitive calculations, please consider running self hosted instance.

Runtime requirements

  • python >=3.10

Install

Archlinux

opcut is available as AUR package:

$ yay -S opcut

Windows

Windows distribution, with embedded python, is available at GitHub releases.

This archive contains opcut-server.cmd, which can be used for running server application, and opcut.cmd as generic opcut action launcher.

Python wheel

Opcut is available as PyPI project:

$ pip install opcut

Docker

opcut server is available as Docker image:

$ docker run -p 8080:8080 bozokopic/opcut

Usage

opcut command is interface for execution of three distinct actions:

  • opcut calculate …

    Calculation of cutting stock problem. Input parameters and result is formatted as JSON data (JSON, YAML or TOML).

  • opcut generate …

    Generate output representation (SVG, PDF, …) based on calculation result.

  • opcut server …

    Run HTTP server providing single-page web application interface and OpenAPI interface (default listening address is http://0.0.0.0:8080).

For additional command line arguments and documentation, run:

$ man 1 opcut

JSON schema describing data structures is available at schemas/opcut.yaml.

OpenAPI definition is available at schemas/openapi.yaml.

opcut calculate

Example:

$ opcut calculate --input-format yaml --output result.json << EOF
cut_width: 1
panels:
    panel1:
        width: 100
        height: 100
items:
    item1:
        width: 10
        height: 10
        can_rotate: false
EOF

opcut generate

Example:

$ opcut generate --output output.pdf result.json

opcut server

Example:

$ opcut server

Development requirements

  • C99 compiler (gcc, clang, …)

  • nodejs >=7

  • npm

Build

Build tool used for opcut is pydoit (http://pydoit.org/). It can be installed together with other python dependencies by running:

$ pip install -r requirements.pip.txt

For listing available doit tasks, use:

$ doit list

Default task:

$ doit

creates wheel package inside build directory.

TODO

  • unit tests

  • changelog

  • mailing list

  • roadmap

Contributing

This project is currently in “proof of concept” state and is not yet recommended for production usage.

Any kind of help in development of this project is appreciated.

Issues and feature requests can be submitted to issue tracker.

Repository changes can be sent as patches over email (Github pull request are also acceptable until dedicated mailing list is set up). Changes containing new functionality or other significant changes should be discussed prior to sending patch.

For any questions regarding this project, contact me at bozo@kopic.xyz.

License

opcut - cutting stock problem optimizer

Copyright (C) 2017-2025 Bozo Kopic

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.

Metadata

Release files for opcut 0.4.16

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for opcut 0.4.16
File Interpreter ABI Platform
opcut-0.4.16-cp310.cp311.cp312.cp313-none-manylinux_2_24_x86_64.whl CPython 3.10, CPython 3.13, CPython 3.11, CPython 3.12 none Linux glibc 2.24+ x86-64 Details

Release files / opcut-0.4.16-cp310.cp311.cp312.cp313-none-manylinux_2_24_x86_64.whl

Download URL opcut-0.4.16-cp310.cp311.cp312.cp313-none-manylinux_2_24_x86_64.whl
Size 184.7 kB
Tags CPython 3.10 CPython 3.11 CPython 3.12 CPython 3.13 Linux glibc 2.24+ x86-64
SHA-256 checksum
How to use checksums
7350d84dabd3748a957519278383df0fdb55b5a467f0b113ba48d3352a60f6a9
BLAKE2b-256 checksum
How to use checksums
701fbdf03f765919e676d045c8946b23ad3974c1c6f60b13307e2ec652d475db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.13.2

Release history Release notifications | RSS feed

This release

0.4.16 This release

1 release file

0.4.11

2 release files

0.4.10

2 release files

0.4.9

1 release file

0.4.8

1 release file

0.4.7

1 release file

0.4.6

1 release file

0.4.5

1 release file

0.4.3

1 release file

0.4.2

1 release file

0.4.1

1 release file

0.4.0

1 release file

0.3.2

1 release file

0.3.1

1 release file

0.1.3

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page