Skip to main content

ABS geometry processing toolkit for CAD models.

Reason this release was yanked:

Old Readme, We modularised the package into 2 packages for better usability

Project description

Better Step

image image

Description

Better Step is an open‑source project that unlocks CAD data by converting proprietary STEP files into an open, HDF5‑based format. This approach enables efficient processing on large‑scale computing clusters—eliminating expensive per‑node licenses and opening up CAD data for research and industrial applications.

Key Features

  • Modular Architecture: The project is structured into distinct modules such as geometry, topology, and sampling, promoting maintainability and scalability.
  • Advanced Geometric Entities: Supports handling and manipulation of complex geometric shapes, curves, and surfaces.
  • Sophisticated Sampling Techniques: Implements various sampling methods, with a focus on Poisson disk sampling, tailored for mesh data.
  • Topology Integration: Seamlessly integrates geometric data with topological structures for comprehensive mesh analysis.
  • HDF5 Data Handling: Optimized for working with HDF5 file format, ensuring efficient storage and retrieval of large mesh datasets.

Key Features

  • Open Format: Converts proprietary CAD files into an accessible HDF5 format.
  • Comprehensive Representation: Captures both geometry (curves, surfaces) and topology (solids, shells, faces, loops) of CAD models.
  • Robust Sampling Methods: Provides reliable methods for sampling points, computing normals, detecting sharp features, and generating point clouds for machine learning.
  • Extensible API: Designed to integrate seamlessly into Python workflows.
  • Command‑Line Interface (CLI): Supports batch processing and pipeline integration.

Installation

Prerequisites

  • Python: Version 3.7 or later.
  • Dependencies: HDF5 libraries (via the h5py package) and other dependencies listed in requirements.txt.

Via PyPI

Install the package directly from PyPI using pip:

pip install hdf5_mesh_sampler

From Source

  1. Clone the Repository:

    git clone https://github.com/yourusername/better-step.git
    cd better-step
    
  2. Install Dependencies:

    pip install -r requirements.txt
    
  3. Install the Package:

    python setup.py install
    

Tip: It is recommended to use a virtual environment for isolated installations.

Usage

Better Step provides both a Python API and a command‑line interface for processing CAD data.

Python API Example

Load a CAD model and sample its geometry:

from hdf5_mesh_sampler import Shape_archive
from hdf5_mesh_sampler.sampling import surface_sampler

# Load an HDF5 file containing CAD data
shape = Shape_archive.load("data/sample_hdf5/Box.hdf5")
print("Loaded shape:", shape)

# Sample the surface with a specified resolution
samples = surface_sampler.sample(shape, resolution=0.1)
print("Sampled points:", samples)

Command‑Line Interface

Process files in batch mode using the CLI:

python -m hdf5_mesh_sampler.cli --input data/sample_hdf5/Box.hdf5 --output output_directory

For more usage details, please refer to the Usage page in our documentation.

Documentation

Detailed documentation is available on our website. It includes:

  • Installation Guide
  • Usage Examples
  • API Documentation: Covers modules like Geometry, Topology, Sampling, and Visualization.
  • FAQ, Changelog, Contributing Guidelines, and More

Visit our website: better-step.github.io

Contributing

Contributions are welcome! Please follow these guidelines:

  1. Fork the Repository: Click the "Fork" button on GitHub.

  2. Clone Your Fork Locally:

    git clone https://github.com/yourusername/better-step.git
    cd better-step
    
  3. Create a Branch:

    git checkout -b feature/your-feature-name
    
  4. Make Your Changes: Ensure your code follows our coding standards (PEP 8) and include docstrings and tests where applicable.

  5. Commit and Push:

    git add .
    git commit -m "Add feature: [description]"
    git push origin feature/your-feature-name
    
  6. Submit a Pull Request: Open a pull request on GitHub with a clear description of your changes.

Note: Please also review our Code of Conduct before contributing.

License

  • Python bindings, packaging scripts, testsMIT License (see LICENSE-MIT)
  • Embedded C++ coreMozilla Public License 2.0 (see LICENSE-MPL-2.0)

Acknowledgments

Better Step is developed and maintained by a dedicated team. For a complete list of contributors, please see the Authors page.

Project details


Download files

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

Source Distribution

abs_hdf5-0.1.0.tar.gz (47.1 kB view details)

Uploaded Source

Built Distribution

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

abs_hdf5-0.1.0-cp39-cp39-macosx_10_16_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.9macOS 10.16+ x86-64

File details

Details for the file abs_hdf5-0.1.0.tar.gz.

File metadata

  • Download URL: abs_hdf5-0.1.0.tar.gz
  • Upload date:
  • Size: 47.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.13

File hashes

Hashes for abs_hdf5-0.1.0.tar.gz
Algorithm Hash digest
SHA256 38858c8916473be55a1fc8b8877b110b664012682c12e6d1850d89dd235c05ba
MD5 3b819194ac1fbe930bd7d086a5c33d57
BLAKE2b-256 8d1119dc6618b75170a523cb0ead79739f960473a2a281f383a4d4245bb3a802

See more details on using hashes here.

File details

Details for the file abs_hdf5-0.1.0-cp39-cp39-macosx_10_16_x86_64.whl.

File metadata

File hashes

Hashes for abs_hdf5-0.1.0-cp39-cp39-macosx_10_16_x86_64.whl
Algorithm Hash digest
SHA256 b0091292ef8f1031d0e011026f80a69f42970c2e52e8b3ce51fdedabd3e2dd3d
MD5 85e3b336b24d4efab9ba6d9041817cd4
BLAKE2b-256 1ab2eb611ffbac6eb1ddeaf6fa2762d74fdb978ce7b3fd1334eaaacb7eaff911

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 Pingdom Monitoring Sentry Error logging StatusPage Status page