Open-source project
biolab/orange3 avatar
biolab/orange3

Orange3: A Visual Workflow Toolbox for Data Mining Without Code

🍊 :bar_chart: :bulb: Orange: Interactive data analysis

5,697 stars1,110 forksPythonNOASSERTION

At a glance

What is it?
Orange3 is a Python data mining and visualization toolbox built around a drag-and-drop canvas. It is aimed at people who own data and want to explore it without writing code, but the pip install path and the PyQt dependency make it a different proposition for headless deployment.
Who is it for?
Orange3 fits analysts, students and researchers who want to build classification, regression or clustering workflows on a canvas and inspect the plots as they go. It does not fit teams that need a headless, script-first pipeline inside an existing Python service, because the canvas is a PyQt desktop application and the README's own install instructions assume a graphical environment.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository last received commits 4 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The problem Orange3 targets: data exploration for people who do not write code

The README states the project's position directly: to explore data with Orange, "one requires no programming or in-depth mathematical knowledge." That sentence is the whole design brief. The intended user owns a dataset (a CSV, a spreadsheet export, a survey result) and wants to know what is in it, without first learning scikit-learn's estimator API or matplotlib's axes model. The README adds that "anyone who owns data, or is motivated to peek into data, should have the means to do so." The audience is therefore students, domain researchers and analysts, not software engineers building production pipelines. The repository topics list classification, clustering, decision trees, random forest, regression, plotting and visualization, which maps to the standard introductory machine learning syllabus plus the exploratory charts that usually come before it. If your work is already expressed as a Python script that must run on a schedule, Orange3 is solving a problem you do not have.

How the canvas, widget base and core split the work

Orange3 is not a single monolithic application. The README describes the development of core Orange as split across three repositories: biolab/orange-canvas-core implements the canvas, biolab/orange-widget-base is the widget GUI library, and biolab/orange3 brings them together and implements the base data mining toolbox. That three-way split explains the extension model. A widget is a node on the canvas; the canvas library handles placing, connecting and executing the graph; the widget base library supplies the GUI scaffolding a widget author does not want to rewrite. Add-ons then implement additional widgets for more specific use cases, and the README says anyone can write one, pointing at the orange3-example-addon template. First-party add-ons named in the README cover text, bioinformatics, time series, single-cell, image analytics, educational, geo, associate, network and explain. The consequence for a prospective user is that the base install is a general-purpose toolbox, and any specialised capability (text mining, for instance) arrives as a separate package with its own release cadence. The data flow is the visible one: you connect widgets into a workflow, and the graph is the program.

Installing Orange3: conda, pip, winget and the compiler caveat

The README gives three installation routes. The easy route is the standalone installer from the download page, and add-ons are then installed from Options -> Add-ons... in the menu bar. The conda route is documented in full: add conda-forge to your channels, optionally set channel_priority strict, create an environment with conda create python=3.12 --yes --name orange3, activate it, then conda install orange3. Add-ons follow the same pattern as conda install orange3-<addon name>. The pip route comes with a warning the README does not soften: "We recommend using our standalone installer or conda, but Orange is also installable with pip. You will need a C/C++ compiler (on Windows we suggest using Microsoft Visual Studio Build Tools)." Orange also needs PyQt to run, and the README lists two options: pip install PyQt6 PyQt6-WebEngine (suggested) or pip install PyQt5 PyQtWebEngine. On Windows only, winget install --id UniversityofLjubljana.Orange is also documented. To start the application, after activating the environment, run orange-canvas or python3 -m Orange.canvas, and the README notes that starting up for the first time may take a while.

The pip path is where the friendly promise meets a build toolchain

The gap between the README's opening claim and its pip instructions is the most interesting tension in the material. The project promises that no programming is required, and for the installer and conda paths that holds. The pip path quietly reintroduces a compiler, a build tools install on Windows, and a manual choice between two Qt bindings. That is a normal packaging reality for a desktop Python application with compiled dependencies, not a defect, but it means the pip route is for developers who want Orange3 inside an existing Python environment, not for the audience the README addresses first. The second limitation is structural rather than install-related: because the canvas is a PyQt desktop application, the natural unit of work is an interactive session. Nothing in the supplied material describes a supported headless mode, a server component or a way to execute a saved workflow from a cron job. If you need batch execution, treat that as unverified and test it before committing. A third constraint is version alignment across the ecosystem. Core releases in the material are 3.40.0 (2025-12-20), 3.39.0 (2025-06-13) and 3.38.1 (2024-12-23), a cadence of roughly two releases a year. An add-on that has not been rebuilt against the current core can lag behind, and the README directs you to the specific add-on repositories for details rather than promising compatibility.

What Orange3 does that a scikit-learn script does not

The comparison that matters is not Orange3 against another visual tool, but Orange3 against writing the analysis by hand in scikit-learn and pandas, both of which appear in the repository topics and are the libraries the widgets presumably wrap. The difference in approach is where the artifact lives. In a script, the analysis is the code, and the chart is an output you write explicitly; reproducibility means the script plus its environment. In Orange3, the analysis is a workflow you assemble on the canvas, and the README frames this as hiding "complex underlying mechanics" while exposing "intuitive concepts." The trade is real in both directions. You get immediate visual feedback and a low entry cost for someone who has never called fit and predict. You give up the ability to express logic the widgets do not expose, and you take on a GUI dependency for anything you want to rerun. For a one-off exploration of a new dataset, the canvas is faster than writing plotting code. For a model that must be retrained weekly against a growing table, the script is the better container, and Orange3's value shrinks to prototyping the approach before it is rewritten.

Extending Orange3 with add-ons and your own widgets

The extension story is the part of the project with the longest tail. The README points widget authors at the orange3-example-addon template and at the widget development docs hosted under orange-widget-base.readthedocs.io, described as "a comprehensive guide on writing Orange widgets." It also links a contributing guide and separate style guidelines for widget UI. Ten first-party add-ons are listed by name, spanning text, bioinformatics, time series, single-cell, image analytics, educational, geo, associate, network and explain. Two practical notes follow from this. First, add-ons are separate packages with separate repositories, so an add-on's maintenance state is not the core project's maintenance state, and the README itself defers to those repositories for installation detail. Second, if you write a widget, you are taking on a dependency on the canvas and widget-base APIs, which are versioned independently of orange3 itself. The README does not state an API stability guarantee for either library. Anyone planning to maintain a private widget should read the widget development docs and the style guidelines before writing code, because the GUI scaffolding is the part most likely to change shape between core releases.

Maintenance, release cadence and the licence question

The release history in the material shows 3.40.0 in December 2025, 3.39.0 in June 2025 and 3.38.1 in December 2024. That is a steady but unhurried cadence: two releases a year, with the most recent push to the master branch dated 2026-09-09. Upgrade cost for the core is therefore low in frequency but not zero, because the conda environment pins Python 3.12 in the documented instructions and the PyQt choice (PyQt6 versus PyQt5) is a decision the user makes at install time and may have to revisit. The larger maintenance question concerns the add-ons you depend on, since each has its own release schedule and the core project does not control it. On licensing, the repository metadata reports NOASSERTION rather than a recognised SPDX identifier, and the README does not state a licence. This review cannot tell you what the terms are, and nothing here is legal advice. The concrete step is to read the licence file in the repository and, if you are bundling Orange3 or an add-on into a distributed product, have someone qualified read it too. Do not assume a permissive licence from the project's academic origin.

Editorial conclusion

Orange3 fits analysts, students and researchers who want to build classification, regression or clustering workflows on a canvas and inspect the plots as they go. It does not fit teams that need a headless, script-first pipeline inside an existing Python service, because the canvas is a PyQt desktop application and the README's own install instructions assume a graphical environment. Before adopting it, check the repository's licence file, since the project metadata reports NOASSERTION rather than a named licence, and confirm that the add-on you need has a release matching the 3.40.0 core version.

Official sources

  1. biolab/orange3 on GitHub
  2. Issues
  3. Project website
  4. README
  5. Releases
Community notes

Community notes