Skip to main content

RadFiled3D

Tests

This Repository contains the file format and API according to the Paper: "RadField3D: A Data Generator and Data Format for Deep Learning in Radiation-Protection Dosimetry for Medical Applications".

The aim of this library is, to provide a simple to use API for a structured, binary file format, that can store all relevant information from a three dimensional radiation field calculated by applications that use algorithms like Monte-Carlo radiation transport simulations. Such a binary file format is useful, when one needs to process a huge amount of radiation field files like when training a neural network. With that use-case in mind, RadFiled3D also provides a python interface with a pyTorch integration. In order to directly iterate a dataset generated with the RadField3D tool, just jump to the section RadField3D Datasets.

🌟 Why Use RadFiled3D

  • Efficient Storage: Structured, binary file format for storing large amounts of radiation field data.
  • Easy Integration: Simple API for C++ and Python with pyTorch support.
  • High Performance: Optimized for fast data access and manipulation.
  • Versatile: Supports both Cartesian and Polar coordinate systems.
  • Extensible: Easily extendable to include additional metadata and data types.

Table of Contents

Building and Installing

Installing from PyPi

Prebuilt versions of this module for python 3.11, 3.12 and 3.13 for Windows and most Linuxsystems can be installed directly by using pip.

pip install RadFiled3D

Installing from Source

You can build and install this library and python module from source by using CMake and a C++ compiler. The CMake Project will be built automatically, but will take some time.

Prerequisites

  • C++ Compiler
    • g++ or clang for Linux
    • MSVC or clang from Visual Studio 2022 for Windows
  • CMake >= 3.30
  • Python >= 3.11

CMake

In order to use the module directly from another C++ Project, you can integrate it by adding the local location of this repository via add_submodule() and then link against the target libRadFiled3D. All classes are then available from the namespace RadFiled3D. Check the Example or the First Test File as a first reference.

Python

The Python package is built with scikit-build-core, the standard PEP 517 backend for CMake projects. It drives the CMake/pybind11 build automatically; no setup.py is required. CMake and Ninja are provisioned by the build backend if they are not already present.

Installing locally

python -m pip install .

Building a wheel

python -m build --wheel

The package version is taken from the release tag (GITHUB_REF / CI_COMMIT_TAG) at build time and falls back to 0.0.0 for non-release builds.

Getting Started

Disclaimer: Not all methods support keyword arguments as they need to be defined manually in the bindings. For some methods like add_layer or the Metadata methods those are implemented.

From Python

Simple example on how to create and store a radiation field. Find more in the example file: Example

from RadFiled3D.RadFiled3D import vec3, CartesianRadiationField, DType
from RadFiled3D.utils import FieldStore, StoreVersion
from RadFiled3D.metadata.v1 import Metadata


# Creating a cartesian radiation field
field = CartesianRadiationField(vec3(2.5, 2.5, 2.5), vec3(0.05, 0.05, 0.05))
# defining a channel and a layer on it
field.add_channel("channel1").add_layer("layer1", "unit1", DType.FLOAT32)

# accessing the voxels by using numpy arrays
array = field.get_channel("channel1").get_layer_as_ndarray("layer1")
assert array.shape == (50, 50, 50, 1)

# modify voxels content by using numpy array as no data is copied, just referenced
array[2:5, 2:5, 2:5] = 2.0

# addressing a voxel by providing a point in space
voxel = field.get_channel("channel1").get_voxel_by_coord("layer1", 0.1, 2.4, 2.1)

# Store changes to a file
metadata = Metadata.default()
FieldStore.store(field, metadata, "test01.rf3", StoreVersion.V1)

# load data
field2 = FieldStore.load("test01.rf3")
metadata2 = FieldStore.load_metadata("test01.rf3")

Integrating with pyTorch

RadFiled3D comes with a submodule at RadFiled3D.pytorch. This module provides some dataset classes to support the usage. Datasets can be loaded from folders or .zip-Files.

from RadFiled3D.pytorch.datasets import MetadataLoadMode
from RadFiled3D.pytorch.datasets.cartesian import CartesianFieldSingleLayerDataset
from RadFiled3D.pytorch import DataLoaderBuilder
from RadFiled3D.pytorch.helpers import RadiationFieldHelper
from RadFiled3D.RadFiled3D import VoxelGrid
from torch import Tensor
from RadFiled3D.metadata.v1 import Metadata
from RadFiled3D.pytorch.types import TrainingInputData, DirectionalInput


# Extend one of the provided dataset classes to match the output to the current needs
class MyLayerDataset(CartesianFieldSingleLayerDataset):
    def __getitem____(self, idx: int) -> TrainingInputData:
        layer, metadata = super().__getitem__(idx)
        tube_dir = metadata.get_header().simulation.tube.radiation_direction
        tube_pos = metadata.get_header().simulation.tube.radiation_origin
        # transform the layers data to a tensor
        return TrainingInputData(
            input=DirectionalInput(
                direction=torch.tensor([tube_dir.x, tube_dir.y, tube_dir.z]),
                origin=torch.tensor([tube_pos.x, tube_pos.y, tube_pos.z]),
                spectrum=None
            )
            ground_truth=RadiationFieldHelper.load_tensor_from_layer(layer)
        )


def finalize_dataset(dataset: MyLayerDataset)
    dataset.set_channel_and_layer("test_channel", "test_layer")
    dataset.metadata_load_mode = MetadataLoadMode.HEADER

# Pass the dataset class and other options to the DataLoaderBuilder
builder = DataLoaderBuilder(
    "./test_dataset.zip",
    train_ratio=0.7,
    val_ratio=0.15,
    test_ratio=0.15,
    dataset_class=MyLayerDataset,
    on_dataset_created=finalize_dataset     # Optional: provide a finalizer to perform configuration of the dataset once it was created by the builder
)

# Build the training dataset
train_dl = builder.build_train_dataloader(
    batch_size=8,
    shuffle=True,
    worker_count=4
)

# iterate over the dataset
for field, metadata in train_dl:
    pass

Direct integration with RadField3D datasets

Directly iterate RadField3D datasets either by loading whole fields or iterating each voxel independently. The dataset classes will return pyTorch compatible NamedTuples, that preserve the structure of the raw radiation fields and layers.

from RadField3D.pytorch.datasets.radfield3d import RadField3DDataset
from RadField3D.pytorch.datasets.radfield3d import RadField3DVoxelwiseDataset
# import the pyTorch compatible datatypes
from RadField3D.pytorch import DataLoaderBuilder
from RadField3D.pytorch.types import DirectionalInput, PositionalInput, TrainingInputData, RadiationField


builder = DataLoaderBuilder(
    "./test_dataset_folder/",
    train_ratio=0.7,
    val_ratio=0.15,
    test_ratio=0.15,
    dataset_class=RadField3DDataset
)

train_dl = builder.build_train_dataloader(
    batch_size=8,
    shuffle=True,
    worker_count=4
)

# iterate over the dataset using fully useable pyTorch classes
for train_data in train_dl:
    input: DirectionalInput | PositionalInput = train_data.input
    field: RadiationField = train_data.ground_truth

TrainingInputData consists of two components metadata (as DirectionalInput or PositionalInput) contains the following information

  • radiation direction (x, y, z)
  • radiation origin (x, y, z)
  • field shape (Cone, Rectangle, Ellipsis)
  • field shape parameters (opening angle, size at origin, ...)
  • x-ray tube output spectrum

field (as RadiationField) contains the following information

  • direct x-ray beam component (as RadiationFieldChannel)
    • spectrum per voxel
    • fluence per voxel
    • statistical error per voxel
  • scatter field component (as RadiationFieldChannel)
    • spectrum per voxel
    • fluence per voxel
    • statistical error per voxel
  • geometry (binary density map)

Tracing paths in Cartesian Coordinate Systems

In order to integrate RadFiled3D with other simulation frameworks or applications, one can either take the final results and write it voxel-wise to RadFiled3D or one can already use RadFiled3D during the particle tracking. Therefore, this library offers GridTracers. Each of them implements a different line-segment tracing algorithm to find consecutive voxels that are intersected.

The following GridTracers exists:

  • SamplingGridTracer: Traces a line between two points in the grid using a sampling approach. In this approach the minimum sampling size is the length of the line segment. If the line segment is longer than the minimum sampling size, which is half the L2-Norm of the voxel size, the line is divided into segments of the minimum sampling size. This approach counts the hits if the line segment is incident to a voxel, only!
  • BresenhamGridTracer: Traces a line between two points in the grid using the Bresenham algorithm. This algorithm is a line rasterization algorithm that is used to trace a line between two points in a grid. The starting point is excluded as this can only exit a voxel.
  • LinetracingGridTracer: This class traces a line between two points in the grid using a combination of the SamplingGridTracer and a line tracing algorithm. First the lossy sampling tracer is used to trace the line. Then all adjacent voxels to the voxels that were hit are tested using a line-segment intersection test algorithm.

All those tracers can be created by calling the GridTracerFactory.construct(..) method. The tracers share one single interface method:

def trace(self, p1: vec3, p2: vec3) -> list[int]:

This method takes two points as the definition of the considered line-segment and returns the flat indices of all voxels intersected, that are inside the grid.

Example usage:

from RadFiled3D.RadFiled3D import vec3, GridTracerFactory, GridTracerAlgorithm, CartesianRadiationField, DType

field = CartesianRadiationField(vec3(1.0, 1.0, 1.0), vec3(0.01, 0.01, 0.01))
field.add_channel("test").add_layer("flux", "counts", DType.INT32)
hits_counts = field.get_channel("test").get_layer_as_ndarray("flux")
hits_counts = hits_counts.flatten()

tracer = GridTracerFactory.construct(field, GridTracerAlgorithm.SAMPLING)

indices = tracer.trace(vec3(0.5, 0.5, 0.0), vec3(0.5, 0.85, 1.0))
hits_counts[indices] += 1
grid_shape = field.get_voxel_counts()
hits_counts.reshape((grid_shape.x, grid_shape.y, grid_shape.z))

Faster loading of field series

As the RadFiled3D format possesses a dynamic structure, the loading of a radiation field requires the discovery of channels and layers as well as calculating the binary entry points of channels, layers and voxels. When loading datasets for machine learning, the structure of the fields loaded will likely be constant for each dataset. Therefore, the binary entry points can be precalculated to access only those parts of the RadFiled3D files that are really needed to increase the loading speed and to reduce the needed memory. This is relealized by the FieldAccessors objects.

from RadFiled3D.RadFiled3D import CartesianFieldAccessor, FieldType, uvec3
from RadFiled3D.utils import FieldStore
from RadFiled3D.metadata.v1 import Metadata

accessor: CartesianFieldAccessor = FieldStore.construct_field_accessor("a_file.rf3")
field_type = accessor.get_field_type()
assert field_type == FieldType.CARTESIAN

print(accessor)
field = accessor.access_field("a_similar_file.rf3")
layer = accessor.access_layer("a_similar_file.rf3", "channel1", "layer1")
voxel = accessor.access_voxel("a_similar_file.rf3", "channel1", "layer1", uvec3(0, 0, 0))

FieldAccessors are implemented for the two currently supported coordinate systems: CartesianFieldAccessor and PolarFieldAccessor. Depending on the actual field type, FieldStore.construct_field_accessor(AFile) returns one of them. The pyTorch Datasets are implemented using the FieldAccessor objects to allow for quicker access of datasets. The tests shall act as example code see test_field_accessor.py.

From C++

Simple example on how to create and store a radiation field. Find more in the example file: Example

#include <RadFiled3D/storage/RadiationFieldStore.hpp>
#include <RadFiled3D/RadiationField.hpp>

using namespace RadFiled3D;
using namespace RadFiled3D::Storage;

void main() {
    auto field = std::make_shared<CartesianRadiationField>(glm::vec3(2.5f), glm::vec3(0.05f)); // field extents: 2.5 m x 2.5 m x 2.5 m and voxel extents: 5 cm x 5 cm x 5 cm

    auto metadata = std::make_shared<RadFiled3D::Storage::V1::RadiationFieldMetadata>(
        // learn about the existing data fields from the example file in ./examples/cxx/examples01.cpp
    )

    FieldStore::store(field, metadata, "test_field.rf3", StoreVersion::V1);

    auto field2 = FieldStore::load("test_field.rf3");
}

Available Voxel Datatypes

In general, a C++ Scalar- or HistogramVoxel (and thus layers) can hold any datatype. But in order to deserialize them from a file or use them from Python, there is only a specific list implemented. The Available datatypes are:

C++ Type RadFiled3D.DType
float DType.FLOAT32
double DType.FLOAT64
int DType.INT32
uint8_t DType.BYTE
unsigned char DType.BYTE
char DType.SCHAR
uint32_t DType.UINT32
uint64_t DType.UINT64
unsigned long long DType.UINT64
glm::vec2 DType.VEC2
glm::vec3 DType.VEC3
glm::vec4 DType.VEC4
HistogramVoxel DType.HISTOGRAM
AngularResolvedVoxel DType.ANGULAR

Field Structure

RadFiled3D defines a field structure, that provides the user with the possibility to first define in which kind of space he wants to operate. Therefore one can choose between CartesianRadiationField and PolarRadiationField.

  • CartesianRadiationField: Segments a room defined by an extent of the room itself and each cuboid voxel into a set of voxels. Each voxel can be addressed by a 3D position (coordinate: x, y, z), a 3D index (number of the voxel in each dimension) or a flat 1D index.
  • PolarRadiationField: Segements the surface of a unit sphere into surface segments. Each segment (voxel) can be addressed by a 2D position (coordinate: theta, phi), a 2D index (number of the segment in each dimension) or a flat 1D index.

Fields are then partitioned into channels (VoxelGridBuffer/PolarSegmentsBuffer). All channels share the same size and resolution. A channel is again partitioned into layers (VoxelGrid/PolarSegment). Each layer holds the actual voxel data and can be constructed from various data types (float, double, uint32_t, uint64_t, glm::vec2, glm::vec3, glm::vec4, N-D-Histogram (list of floats)). Additionally, a layer has a unit string assigned to it as well as a statistical uncertainty to perserve those information.

Dependencies

RadFiled3D comes with a possibly low amount of dependencies. We integrated the OpenGL Math Library (GLM) just to provide those datatypes out of the box and as GLM is a head-only library we suspect no issues by doing so.

All C++ dependencies (Will be fetched by CMake):

All python dependencies:

Download files

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

Source Distribution

radfiled3d-1.3.6.tar.gz (135.2 kB view details)

Uploaded Source

Built Distributions

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

radfiled3d-1.3.6-cp314-cp314-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.14Windows x86-64

radfiled3d-1.3.6-cp314-cp314-musllinux_1_2_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

radfiled3d-1.3.6-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (808.4 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

radfiled3d-1.3.6-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (837.0 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

radfiled3d-1.3.6-cp313-cp313-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.13Windows x86-64

radfiled3d-1.3.6-cp313-cp313-musllinux_1_2_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

radfiled3d-1.3.6-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (808.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

radfiled3d-1.3.6-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (836.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

radfiled3d-1.3.6-cp312-cp312-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.12Windows x86-64

radfiled3d-1.3.6-cp312-cp312-musllinux_1_2_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

radfiled3d-1.3.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (807.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

radfiled3d-1.3.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (836.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

radfiled3d-1.3.6-cp311-cp311-musllinux_1_2_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

radfiled3d-1.3.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (804.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

radfiled3d-1.3.6-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (831.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

File details

Details for the file radfiled3d-1.3.6.tar.gz.

File metadata

  • Download URL: radfiled3d-1.3.6.tar.gz
  • Upload date:
  • Size: 135.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for radfiled3d-1.3.6.tar.gz
Algorithm Hash digest
SHA256 057c70daddbfa3153de92e4580280c74fdbbc56a52b2a880b5f532130eb5610d
MD5 7a9944451506b59ae7d013503f7da6cf
BLAKE2b-256 869981804fbeb90a154cd95b614b7f8b26d60f5a3db0c9d5bc3257afb169f2f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for radfiled3d-1.3.6.tar.gz:

Publisher: package-test-publish.yml on Centrasis/RadFiled3D

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file radfiled3d-1.3.6-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: radfiled3d-1.3.6-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.6

File hashes

Hashes for radfiled3d-1.3.6-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 73b306630eb1f64408cb7a6a6a3fdeaaf02e9b7b14ebe77affd0c97e038260c8
MD5 1c6555fa66812a4cb6bfc355ca8b8af9
BLAKE2b-256 ffc6ba008beda4a6a98af6d87abf8482442e0c9ab1b95bec6dc327d82500336c

See more details on using hashes here.

File details

Details for the file radfiled3d-1.3.6-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for radfiled3d-1.3.6-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7ba866b52e80f95d76561c70bd6d0eb4f3516f8f46998b081df84e52fa6b6282
MD5 049c624c03f21636ca76711d2c1d6a4f
BLAKE2b-256 559073ebe42ba246f873aa3a18a3352990941cd11e82c38b6f8ca0c35146ebca

See more details on using hashes here.

Provenance

The following attestation bundles were made for radfiled3d-1.3.6-cp314-cp314-musllinux_1_2_x86_64.whl:

Publisher: package-test-publish.yml on Centrasis/RadFiled3D

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file radfiled3d-1.3.6-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for radfiled3d-1.3.6-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9b9e9e3bc5f703f38669655c649ff518891f7a6baebc2c44b3ce9e996698d15b
MD5 c79ccd8534719a6c1ead4c63bf5cc260
BLAKE2b-256 7fc01784573803ef7617d0a273e1f0b2ca2f7958c78e404e70ec46b76708f20c

See more details on using hashes here.

Provenance

The following attestation bundles were made for radfiled3d-1.3.6-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: package-test-publish.yml on Centrasis/RadFiled3D

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file radfiled3d-1.3.6-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for radfiled3d-1.3.6-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 0ff5b4ca3bced23d29122cc9eca561706056e072c94d716f40f2aa0345d70d88
MD5 d3450b589d959093030044bf849db5e5
BLAKE2b-256 96b13259dfeef9fc43831a8148292b4812feb3aed63385d84ee725cacced4d89

See more details on using hashes here.

Provenance

The following attestation bundles were made for radfiled3d-1.3.6-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl:

Publisher: package-test-publish.yml on Centrasis/RadFiled3D

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file radfiled3d-1.3.6-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: radfiled3d-1.3.6-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for radfiled3d-1.3.6-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 12c5e4f9a8961f64f1f5ea574d929eb6d96bccbf2e3d6b12586c4649cd341371
MD5 51f69b2a02878d8b07a69a22885c40ee
BLAKE2b-256 762169b21f5d28effd8598126f2c5a96ebc4bad105b6670ca2c5b917e41a8735

See more details on using hashes here.

File details

Details for the file radfiled3d-1.3.6-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for radfiled3d-1.3.6-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 273ee19bd2321be4cac961f1cb87931b49b4e772e850d32b5e7aeef44a646ba2
MD5 56a38cd5379aa0223b5f439c8429cf77
BLAKE2b-256 cf2e571ff439e19216820771cfa8df313845a469409ff4ee4787fb9471677805

See more details on using hashes here.

Provenance

The following attestation bundles were made for radfiled3d-1.3.6-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: package-test-publish.yml on Centrasis/RadFiled3D

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file radfiled3d-1.3.6-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for radfiled3d-1.3.6-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 36b3dd8ab74eeb99fb76b856c96d5daaff3d5063575fdc8ab0c4f18f949f8ac3
MD5 eeea0bfb82690c984390cf793b701c38
BLAKE2b-256 3dfe70388e574f4ae44c85240d5742981f307c705d5945db16fab1d5d6091e65

See more details on using hashes here.

Provenance

The following attestation bundles were made for radfiled3d-1.3.6-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: package-test-publish.yml on Centrasis/RadFiled3D

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file radfiled3d-1.3.6-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for radfiled3d-1.3.6-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 0d99ed9e92b9d9ba728994ee35964492c91140b3f86ce7f8a52f9d5ec99ee098
MD5 068e547d25769ece971fe245229f6697
BLAKE2b-256 f6d92ab2b42a56fe34fadd5bd77b5c3eefbb2f25c300f4f4365a0656f37159c1

See more details on using hashes here.

Provenance

The following attestation bundles were made for radfiled3d-1.3.6-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl:

Publisher: package-test-publish.yml on Centrasis/RadFiled3D

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file radfiled3d-1.3.6-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: radfiled3d-1.3.6-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.10

File hashes

Hashes for radfiled3d-1.3.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 7c2837e9b0818b82b19ae4e83a3e2e4bdeaafab6b7a693a6c0f8261d747be68d
MD5 323cda1b017199eb8900b1d0e7ebc41a
BLAKE2b-256 cf0ff9ae3b96fde7713a96e2d5a09e7d89b90e40d7ffda2fecfd7ad986b52c27

See more details on using hashes here.

File details

Details for the file radfiled3d-1.3.6-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for radfiled3d-1.3.6-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2e911199012e2d645b2d1fd22a1a78ef248dd8fb5c811281f652183482752aa4
MD5 a5b3f1e7f6af0b9ae613476c12e746ff
BLAKE2b-256 b35759808951a9592f0d9d207371b6be480e2011924ce38fa16c552bbedbb599

See more details on using hashes here.

Provenance

The following attestation bundles were made for radfiled3d-1.3.6-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: package-test-publish.yml on Centrasis/RadFiled3D

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file radfiled3d-1.3.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for radfiled3d-1.3.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5b5f3505f531a6ad1391f9775e0000f7967f98c58c413104512f64b9e17f39d6
MD5 ea9f2b2d89f4fa73e3d3c3cdf0292e9a
BLAKE2b-256 3321c8eb2cc459dbcb60f80df6beb5a007753235230a5b0958a1f8b6cd047b15

See more details on using hashes here.

Provenance

The following attestation bundles were made for radfiled3d-1.3.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: package-test-publish.yml on Centrasis/RadFiled3D

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file radfiled3d-1.3.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for radfiled3d-1.3.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 bdcf63d4c1895e40e34f772d40d29d06baee97b255db38a5299fca2aaac20d1a
MD5 0bbb7c36eea023664b1f7942d5807ad3
BLAKE2b-256 491308d703633acd8ccc805d896fc6ae3c7c48b887effb7e70c7a09e7e6b670b

See more details on using hashes here.

Provenance

The following attestation bundles were made for radfiled3d-1.3.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl:

Publisher: package-test-publish.yml on Centrasis/RadFiled3D

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file radfiled3d-1.3.6-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for radfiled3d-1.3.6-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 43332467d12176a650a4efe267333b5f9f8ff0dd4b2f491a2018a3eaeffd2196
MD5 f5466af17f2e914d8664fd336cb686cd
BLAKE2b-256 f95e410c4ca5d50f027cf306f63dea88fb9693a929858d794e1e5d18f342b368

See more details on using hashes here.

Provenance

The following attestation bundles were made for radfiled3d-1.3.6-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: package-test-publish.yml on Centrasis/RadFiled3D

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file radfiled3d-1.3.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for radfiled3d-1.3.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c01101c128d5a75e6fa42eae7701b64fb4ddff36ce3fa8ceddf859f3265cb9c0
MD5 3424d3d8a13805fde20e5dd1c8f7da33
BLAKE2b-256 c9fe0503bf9dbfc8e3642d7147818e02aa8b83abc6ed7132a08dc0cc4332a701

See more details on using hashes here.

Provenance

The following attestation bundles were made for radfiled3d-1.3.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: package-test-publish.yml on Centrasis/RadFiled3D

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file radfiled3d-1.3.6-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for radfiled3d-1.3.6-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 43dc66f3e2379cc923a0f3c7ce0183dfacb33e05fcc0f8da31cc91d31fd23f62
MD5 57a300607d1cc89116115b5990e1489a
BLAKE2b-256 155757efc252930263e745607f5c713261281fa31bf8f85e292b692ee7faf155

See more details on using hashes here.

Provenance

The following attestation bundles were made for radfiled3d-1.3.6-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl:

Publisher: package-test-publish.yml on Centrasis/RadFiled3D

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

1.3.6 This release

16 files

1.3.5

16 files

1.3.4

16 files

1.3.3

16 files

1.3.2

16 files

1.3.1

16 files

1.3.0

16 files

1.2.3

12 files

1.2.2

12 files

1.2.1

12 files

1.2.0

11 files

1.1.5

12 files

1.1.4

12 files

1.1.3

12 files

1.1.2

12 files

1.1.1

12 files

1.1.0

12 files

1.0.8

12 files

1.0.7

12 files

1.0.6

12 files

1.0.5

12 files

1.0.4

12 files

1.0.3

3 files

1.0.2

3 files

1.0.0

1 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