CEA External Tools
A standalone Python package containing compiled C++ tools for the City Energy Analyst (CEA).
This package provides pre-compiled binary executables for radiation calculations and urban energy modeling, including DAYSIM (daylighting simulation) and CRAX (City Radiation Accelerator).
By separating these computationally intensive C++ components into their own package, we enable faster CEA installations and reduce build complexity.
Installation
pip install cea-external-tools
Usage
import cea_external_tools
# Get path to binary tools
bin_path = cea_external_tools.get_bin_path()
print(f"External tools located at: {bin_path}")
Package Contents
This package includes compiled binaries for:
- DAYSIM - Advanced daylighting simulation tools
- CRAX - Fast urban radiation calculation engine
Development & Build Configuration
This directory contains the CMake configuration for building external tools required by the City Energy Analyst (CEA).
Structure
The build system has been modularized into separate configuration files:
CMakeLists.txt- Main build configuration fileDaysimConfig.cmake- DAYSIM-specific configuration and build logicCraxConfig.cmake- CRAX-specific configuration and build logic
Components
DAYSIM
Daylighting simulation tool that provides various radiation calculation utilities.
Executables built:
ds_illum- Illuminance calculationepw2wea- Weather file conversiongen_dc- Daylight coefficient generationoconv- Octree conversionradfiles2daysim- Radiance file conversionrtrace_dc- Ray tracing for daylight coefficients
CRAX
City Radiation Accelerator for fast urban radiation simulations.
Executables built:
radiation- Main radiation calculation enginemesh-generation- 3D mesh generation utility
Build Options
You can control which components to build using CMake options:
# Build both components (default)
cmake -DBUILD_DAYSIM=ON -DBUILD_CRAX=ON ..
# Build only DAYSIM
cmake -DBUILD_DAYSIM=ON -DBUILD_CRAX=OFF ..
# Build only CRAX
cmake -DBUILD_DAYSIM=OFF -DBUILD_CRAX=ON ..
CRAX-specific Options
CRAX has additional configuration options for Python wheel builds:
CRAX_USE_DYNAMIC_ARROW(default: ON) - Enable dynamic Arrow linking to save space in wheelsCRAX_USE_AUTOMATED_DEPENDENCIES(default: ON) - Use automated dependency fetching
Source Configuration
Both tools support local source directories or automatic fetching from GitHub:
DAYSIM
DAYSIM_SOURCE_DIR- Path to local DAYSIM source (default:./daysim)DAYSIM_GIT_REPOSITORY- Git repository URL (default:https://github.com/reyery/Daysim.git)DAYSIM_GIT_TAG- Git tag/branch to use
CRAX
CRAX_SOURCE_DIR- Path to local CRAX source (default:./crax)CRAX_GIT_REPOSITORY- Git repository URL (default:https://github.com/wanglittlerain/CityRadiation-Accelerator-CRAX-V1.0.git)CRAX_GIT_TAG- Git tag/branch to use
Installation
The built executables are installed to the CEA resources directory:
- CRAX tools:
cea_external_tools/bin
Build Targets
The build system includes a custom target cea_all that builds all required CEA components:
# Configure build
cmake -B build -S .
# Build all CEA targets (recommended)
cmake --build build --target cea_all
# Or build all targets
cmake --build build
# Install to CEA resources
cmake --install build
Compiler Warnings
The build system automatically suppresses common warnings for cleaner output:
- GNU/Clang: Suppresses missing prototypes, unused variables, sign comparison, and deprecated declarations
- MSVC: Suppresses warning C4127 to prevent build failures on Windows
Release files for cea-external-tools 0.2.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cea_external_tools-0.2.3.tar.gz | 74.4 kB | Details |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cea_external_tools-0.2.3-cp312-cp312-win_amd64.whl | CPython 3.12 | CPython 3.12 | Windows x86-64 | Details |
| cea_external_tools-0.2.3-cp312-cp312-manylinux_2_39_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.39+ x86-64 | Details |
| cea_external_tools-0.2.3-cp312-cp312-macosx_13_0_arm64.whl | CPython 3.12 | CPython 3.12 | macOS 13.0+ ARM64 | Details |
Total release size: 31.7 MB
Release files / cea_external_tools-0.2.3.tar.gz
| Download URL | cea_external_tools-0.2.3.tar.gz |
|---|---|
| Size | 74.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a045b0ebafe5abe1d0bc30e77eb04feca55b27d0adf2f8a13d88b0f1dd66292a
|
|
BLAKE2b-256 checksum How to use checksums |
e3f775f1fd36b8fef9cf78f19b19cfbbb391fee691f9c53eddd320f81f03b2d4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 5, 2026.
Transparency logRelease files / cea_external_tools-0.2.3-cp312-cp312-win_amd64.whl
| Download URL | cea_external_tools-0.2.3-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
ead5b14aca10223aa7920029c4ac86f89052a140ed2c3ec2f89722fd677d9569
|
|
BLAKE2b-256 checksum How to use checksums |
94c47df3633954579b66e72634044fede5d8eddd02b0e88e4751b0e690f56b6a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 5, 2026.
Transparency logRelease files / cea_external_tools-0.2.3-cp312-cp312-manylinux_2_39_x86_64.whl
| Download URL | cea_external_tools-0.2.3-cp312-cp312-manylinux_2_39_x86_64.whl |
|---|---|
| Size | 28.1 MB |
| Tags | CPython 3.12 Linux glibc 2.39+ x86-64 |
|
SHA-256 checksum How to use checksums |
0e15bc32e46d9df2d630eb5e9660b6f4f3ce5c99c86c740321d286619a8cff80
|
|
BLAKE2b-256 checksum How to use checksums |
2e004c4f269f35ca7492f7715bcd961da3ebec615330a11a06d9fecbe6b834f0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 5, 2026.
Transparency logRelease files / cea_external_tools-0.2.3-cp312-cp312-macosx_13_0_arm64.whl
| Download URL | cea_external_tools-0.2.3-cp312-cp312-macosx_13_0_arm64.whl |
|---|---|
| Size | 1.4 MB |
| Tags | CPython 3.12 macOS 13.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
d6bb419d5ff54841d6b07ba63d293a331b2651552a15736f122120bfd9b0e4eb
|
|
BLAKE2b-256 checksum How to use checksums |
70486ff50ae531c4684ca634790818d64497ffe91f6b06637cbd5b6bdcdb7943
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 5, 2026.
Transparency log