Skip to main content

Engineering Calculator Library — 74 solvers, visualizations, material database, and studio tools for Structural, Mechanical, Electrical, Chemical & Materials engineering

Project description

Phaxor — Engineering Calculator Library

74 engineering solvers + visualizations + material database + studio tools for Python and Jupyter notebooks. Zero required dependencies.

Need full power? The Phaxor Cloud API provides 1,550+ materials, 15 interactive studios, 83 graph renderers, real-time computation, and full access to every feature — with API key authentication.


Install

pip install phaxor               # Core (74 solvers, zero deps)
pip install phaxor[plot]          # + Matplotlib visualizations
pip install phaxor[all]           # + Jupyter display + plots

Quick Start

import phaxor

# ─── Ideal Gas Law ───────────────────────────────────────────
result = phaxor.compute('ideal-gas', {
    'solveFor': 'pressure',
    'volume': 0.02241, 'moles': 1, 'temperature': 273.15
})
print(f"Pressure = {result['P']:.0f} Pa")  # 101325 Pa

# ─── Ohm's Law ──────────────────────────────────────────────
result = phaxor.compute('ohms-law', {
    'solveFor': 'I', 'voltage': 12, 'resistance': 100
})
print(f"Current = {result['I']} A")  # 0.12 A

# ─── Mohr's Circle ──────────────────────────────────────────
result = phaxor.compute('mohrs-circle', {
    'sigmaX': 80, 'sigmaY': -40, 'tauXY': 30
})
print(f"σ₁ = {result['sigma1']:.1f} MPa")

# ─── Unit Conversion ────────────────────────────────────────
km = phaxor.convert('length', 1, 'mi', 'km')
print(f"1 mile = {km:.6f} km")

# ─── List all calculators ───────────────────────────────────
for calc in phaxor.list_calculators():
    print(f"  {calc['id']:24s} {calc['name']}")

Visualizations (phaxor.plot)

Requires pip install phaxor[plot] (matplotlib).

import phaxor

# Mohr's Circle plot
phaxor.plot.mohrs_circle(sigma_x=80, sigma_y=-40, tau_xy=30)

# Stress-strain curve for a material
phaxor.plot.stress_strain_curve('aluminum-6061')

# Beam SFD/BMD diagrams
phaxor.plot.beam_diagram(
    length=6000,
    point_loads=[
        {'position': 2000, 'magnitude': 15, 'direction': 'down'},
        {'position': 4000, 'magnitude': 10, 'direction': 'down'},
    ]
)

# Column buckling curves
phaxor.plot.column_buckling(length=3000, E=200, I=1e6, area=1000)

# Impedance phasor diagram
phaxor.plot.impedance_phasor(resistance=50, reactance=30)

# Rankine cycle T-s diagram
phaxor.plot.rankine_ts(boiler_pressure=10000, condenser_pressure=10)

# Vibration frequency response
phaxor.plot.vibration_response(mass=10, stiffness=1000, damping=5)

# Gear train speed cascade
phaxor.plot.gear_train(
    stages=[{'driverTeeth': 20, 'drivenTeeth': 60}, {'driverTeeth': 15, 'drivenTeeth': 45}],
    input_speed=1800
)

# Compare any calculator across scenarios
phaxor.plot.compare('ohms-law',
    [{'solveFor': 'P', 'voltage': 12, 'resistance': r} for r in [10, 50, 100, 500]],
    'P', labels=['10Ω', '50Ω', '100Ω', '500Ω']
)

Materials Database (phaxor.materials)

Basic edition includes 20 curated materials. For the full 1,550+ material database, use the Cloud API.

import phaxor

# Look up a material
mat = phaxor.materials.get_material('steel-a36')
print(f"E = {mat['E']} GPa, σy = {mat['sigmaY']} MPa")

# List all available materials
for m in phaxor.materials.list_materials():
    print(f"  {m['id']:20s} {m['name']:30s} [{m['category']}]")

# Filter by category
metals = phaxor.materials.list_materials('metals')

# Compare materials side-by-side
comparison = phaxor.materials.compare_materials('steel-a36', 'aluminum-6061', 'titanium-ti6al4v')

Available materials (free library):

Category Count Materials
Metals 10 A36, A572, SS304, SS316, Al-6061, Al-7075, Copper, Ti-6Al-4V, Cast Iron, Inconel 625
Polymers 5 ABS, Nylon 6, HDPE, PVC, PEEK
Concrete 3 M20, M30, M40
Fluids 2 Water (20°C), Air (20°C)

Via API: 525 metals, 339 polymers, 190 ceramics, 167 fluids, 137 conductors, 127 concrete/masonry, 39 semiconductors, 26 magnetic materials = 1,550 total


Studio Tools (phaxor.studio)

Simplified engineering tools for learning. For the full interactive studios, use the Cloud API.

import phaxor

# Failure analysis against multiple theories
result = phaxor.studio.check_failure(
    sigma_x=180, sigma_y=-60, tau_xy=45,
    sigma_yield=250, theory='all'
)
for name, theory in result['theories'].items():
    print(f"  {name}: FoS = {theory['factorOfSafety']:.2f}{theory['status']}")

# Manufacturing cost estimation
cost = phaxor.studio.estimate_cost(
    material='aluminum-6061', volume_m3=0.0005,
    process='machining', quantity=100
)
print(f"Unit cost: ${cost['unitCost']} → Total: ${cost['totalCost']}")

# Find materials matching requirements
matches = phaxor.studio.find_material(min_yield=300, max_density=5000)
for m in matches:
    print(f"  {m['name']:25s} σy={m['sigmaY']} MPa, ρ={m['density']} kg/m³")

# Section properties
props = phaxor.studio.section_properties('i-beam', bf=200, tf=15, hw=300, tw=10)
print(f"Area = {props['area']} mm², Ix = {props['Ix']} mm⁴")

# Quick design check
check = phaxor.studio.design_check(load=50000, area=500, material='steel-a36')
print(check['statusText'])

All 74 Calculators

Category Engines
Structural (17) beam-deflection, bearing-capacity, column-buckling, concrete-volume, development-length, earth-pressure, failure-theory, isolated-footing, mohrs-circle, rcc-beam, rcc-column, rcc-slab, reinforcement-qty, settlement, soil-properties, steel-weight, stress-strain
Mechanical (19) beam, bearing-life, belt-drive, bolt-analysis, cop, flywheel, gear-ratio, heat-exchanger, heat-transfer, ideal-gas, pipe-flow, pressure-force, pump-power, rankine-cycle, shaft-design, spring-design, torque-power, vibration, weld-strength
Electrical (17) battery-ups, cable-sizing, circuit-breaker, dc-motor, earthing, electrical-efficiency, energy-consumption, impedance, induction-motor, ohms-law, power, pf-correction, rectifier, resonance, short-circuit, solar-sizing, transformer
Chemical (9) arrhenius, cstr, chem-equilibrium, distillation, gibbs, pfr, packed-bed, stoichiometry, vle
Hydraulics (4) open-channel, pavement-thickness, sight-distance, weir-orifice
Materials (5) apf, corrosion, fatigue-life, hardness-conversion, rule-of-mixtures
General (3) geometry, matrix, unit-converter

Jupyter Notebooks

In Jupyter, compute() automatically renders styled HTML tables:

import phaxor

phaxor.compute('ideal-gas', {
    'solveFor': 'pressure',
    'volume': 0.02241, 'moles': 1, 'temperature': 273.15
})
# → Renders a styled table with results

Python vs Cloud API

Feature Python (Free) Cloud API (Paid)
74 Engineering Solvers
Basic Matplotlib Plots ✅ (9 plots) ✅ (83 renderers)
Materials Database 20 materials 1,550 materials
Studio Tools 5 basic 15 interactive studios
Unit Conversion
Interactive SVG Graphs
3D Visualization
Monte Carlo Simulation
Parametric Optimization
AI-Powered Analysis
Material Cost Data Basic Full supply chain
Embeddable Widgets
Rate Limit 10K–∞ req/month
Price Free From $9/month

Get API Access


API

# Core
phaxor.compute(calculator_type, inputs)      # Run any calculator
phaxor.convert(category, value, from, to)    # Unit conversion
phaxor.list_calculators()                     # List all 74 calculators

# Visualization
phaxor.plot.mohrs_circle(...)                # Mohr's Circle
phaxor.plot.stress_strain_curve(material)    # Stress-strain curve
phaxor.plot.beam_diagram(...)                # SFD/BMD
phaxor.plot.column_buckling(...)             # Euler buckling
phaxor.plot.impedance_phasor(R, X)           # Impedance phasor
phaxor.plot.rankine_ts(...)                  # Rankine cycle T-s
phaxor.plot.vibration_response(...)          # Frequency response
phaxor.plot.gear_train(stages)               # Gear train
phaxor.plot.compare(calc, cases, key)        # Comparison chart

# Materials
phaxor.materials.get_material(id)            # Look up material
phaxor.materials.list_materials(category)    # List materials
phaxor.materials.compare_materials(...)      # Compare side-by-side

# Studio
phaxor.studio.check_failure(...)             # Failure theory check
phaxor.studio.estimate_cost(...)             # Cost estimation
phaxor.studio.find_material(...)             # Material finder
phaxor.studio.section_properties(...)        # Section properties
phaxor.studio.design_check(...)              # Quick design check

License

MIT — Seddique Abbasi

Full APIphaxor.com/api

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

phaxor-2.0.0.tar.gz (83.3 kB view details)

Uploaded Source

Built Distribution

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

phaxor-2.0.0-py3-none-any.whl (104.3 kB view details)

Uploaded Python 3

File details

Details for the file phaxor-2.0.0.tar.gz.

File metadata

  • Download URL: phaxor-2.0.0.tar.gz
  • Upload date:
  • Size: 83.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for phaxor-2.0.0.tar.gz
Algorithm Hash digest
SHA256 4d7415d94b8019c2e21b2279530be5febe50e8b1141acb9a272989f52169f51b
MD5 7b330f213af7f575631b700d60f8d1e0
BLAKE2b-256 c414413d6bea1fc72cdf75d80e61f3104ae744bfc7937af34f84e5c80b16a850

See more details on using hashes here.

File details

Details for the file phaxor-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: phaxor-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 104.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for phaxor-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7c5db2d745768a84fb975885de0d7bc39cd72d5533d30d571534c0f8cd0e8adc
MD5 3d88e1a1dc2c0900a23df07918bcc7ce
BLAKE2b-256 7ec42e5e69841f07c8b021f8c6285bea42580f02bc87d10f632c3011ebb75d06

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