Skip to content

Repository files navigation

CFS Design Agent

Cold-Formed Steel (CFS) column design agent with Claude API integration.

Setup

  1. Install dependencies:

    pip install -r requirements.txt
  2. Configure API Key:

    • Copy .env.example to .env
    • Add your Anthropic API key to .env:
      ANTHROPIC_API_KEY=your-api-key-here
      
  3. Run the agent:

    python -m src.cfs_design_agent

Project Structure

cfs-workspace/
├── .env.example          # Example environment variables
├── README.md            # This file
├── PROJECT_SUMMARY.md   # Comprehensive project overview
├── requirements.txt     # Python dependencies
├── .gitignore           # Git ignore rules
│
├── src/                 # Source code
│   ├── cfs_design_agent.py      # Main agent implementation
│   ├── cfs_calculator.py        # CFS design calculations (AISI S100-16)
│   ├── section_catalog.py       # Section database
│   └── tools/                   # MCP tool definitions (future)
│
├── scripts/             # Utility scripts
│   ├── convert_bristol_database.py  # Bristol database converter
│   └── process_bristol_study.py     # Bristol validation processor
│
├── tests/               # Unit tests
│   └── test_calculator.py
│
├── data/                # Data files (gitignored except examples)
│   ├── bristol/
│   │   ├── raw/                     # Original test database
│   │   └── processed/               # Converted test cases
│   ├── sections/                    # Section catalogs
│   └── examples/                    # Sample inputs (committed)
│       ├── column_specs.csv
│       └── design_parameters.json
│
├── outputs/             # Generated results (gitignored)
│   ├── validation/                  # Bristol validation outputs
│   │   ├── bristol_validation_results.json
│   │   ├── bristol_validation_analysis.json
│   │   └── validation_report.json
│   └── designs/                     # Design outputs
│       └── failure_analysis.md
│
└── docs/                # Documentation
    ├── BRISTOL_VALIDATION_GUIDE.md
    ├── examples/
    │   └── cfs_agent_examples.py    # Usage examples
    └── archive/                     # Old versions

Tools Available

  1. check_cfs_capacity: Validate a section against a load
  2. find_optimal_section: Find the best section from a family
  3. list_available_sections: Show available sections by family

Design Standards

  • Code: AISI S100-16, Section C3 (Columns with Flexural Buckling)
  • Design approach: Load and Resistance Factor Design (LRFD)
  • Resistance factor φ = 0.85

Bristol Database Validation

The CFS agent can be validated against real test data from the Bristol University CFS database (207 test specimens).

Workflow

  1. Convert Bristol database to agent format:

    python scripts/convert_bristol_database.py "data/bristol/raw/bristol_cfs_database.csv"

    Outputs:

    • data/bristol/processed/bristol_agent_study.csv - 207 test cases formatted for agent processing
    • outputs/validation/validation_report.json - Database summary statistics
  2. Run agent predictions on test cases:

    python scripts/process_bristol_study.py

    Outputs:

    • outputs/validation/bristol_validation_results.json - Agent capacity predictions for all 207 tests
    • outputs/validation/bristol_validation_analysis.json - Accuracy statistics and error analysis

Database Coverage

  • 207 tests from Bristol University CFS column research
  • Section types: C-2C, O-2C, HC-2C+U, C-2C+2U, C-2U, O-2U, C-U+C
  • Load range: 7.50 - 753.00 kN
  • Length range: 503 - 3500 mm
  • Boundary conditions: Pinned (176), Fixed (23), Semi-Fixed (8)
  • Failure modes: Flexural (F), Local buckling (L), Distortional (D), Hinge

Validation Metrics

The analysis compares:

  • Agent predicted capacity vs. Actual test load (Pt)
  • DSM predicted capacity vs. Actual test load (Pt)
  • Accuracy by section type, length range, and failure mode

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages