Files
BallisticsDocs/Documentation/Sample_MaterialResponse.json
T
2025-07-03 02:41:49 -07:00

525 lines
19 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"_description": "Material Response Configuration File",
"_notes": "This file defines how materials respond to ballistic impact, including penetration, ricochet, and fragmentation characteristics. Values are based on material science and ballistics research.",
"_example": "Mild Steel Plate - Typical structural steel properties",
"_warning": "These parameters significantly affect simulation realism. Consult ballistics literature for accurate values.",
"PenTraceType": {
"_description": "Method used to calculate penetration through material",
"_options": {
"0": "Back Trace - Traces backwards from exit point to calculate thickness",
"1": "By Component - Uses component bounds for thickness calculation",
"2": "Double Sided Geometry - Treats geometry as having entry and exit surfaces"
},
"_recommendation": "Use Back Trace (0) for most materials, Double Sided (2) for thin plates",
"value": 0
},
"NeverPenetrate": {
"_description": "Forces material to be completely impenetrable regardless of impact energy",
"_use_cases": [
"Armor plates in arcade-style games",
"Indestructible barriers",
"Ultra-hard materials like tungsten carbide armor"
],
"_note": "Overrides all other penetration calculations when true",
"value": false
},
"PenetrationDepthMultiplier": {
"_description": "Scaling factor for calculated penetration depth",
"_unit": "multiplier (1.0 = normal penetration)",
"_range": "0.1-10.0 typical",
"_effects": {
"0.5": "Half normal penetration (hardened armor)",
"1.0": "Normal penetration (standard calculation)",
"2.0": "Double penetration (soft materials)",
"5.0": "Very high penetration (foam, fabric)"
},
"_applications": "Adjust for material hardness variations not captured in other parameters",
"value": 1.0
},
"PenetrationNormalization": {
"_description": "Reduces penetration effectiveness at oblique impact angles",
"_unit": "degrees (0-90)",
"_explanation": "At angles greater than this value, penetration is reduced",
"_typical_values": {
"soft_materials": "0-15 degrees (wood, plastic)",
"medium_materials": "15-30 degrees (aluminum, mild steel)",
"hard_materials": "30-45 degrees (hardened steel, armor)",
"very_hard": "45-60 degrees (ceramics, tungsten)"
},
"_physics": "Represents material's resistance to angled impacts",
"value": 0.0
},
"PenetrationNormalizationGrazing": {
"_description": "Additional normalization for very shallow (grazing) angles",
"_unit": "degrees (0-90)",
"_explanation": "Applied in addition to PenetrationNormalization for extreme angles",
"_typical_range": "60-85 degrees",
"_effect": "Simulates bullet deflection at very shallow impact angles",
"value": 0.0
},
"PenetrationEntryAngleSpread": {
"_description": "Random deviation of bullet path when entering material",
"_unit": "degrees of cone spread",
"_range": "0-15 degrees typical",
"_causes": [
"Material inhomogeneity",
"Surface roughness",
"Bullet deformation on impact"
],
"_typical_values": {
"homogeneous": "0-2 degrees (steel, aluminum)",
"layered": "2-5 degrees (plywood, composites)",
"granular": "5-10 degrees (concrete, soil)",
"irregular": "10+ degrees (rock, masonry)"
},
"value": 0.0
},
"PenetrationExitAngleSpread": {
"_description": "Random deviation of bullet path when exiting material",
"_unit": "degrees of cone spread",
"_explanation": "Usually larger than entry spread due to bullet tumbling and material displacement",
"_typical_values": {
"thin_plates": "1-3 degrees",
"medium_thickness": "3-8 degrees",
"thick_materials": "8-15 degrees",
"very_thick": "15+ degrees"
},
"_factors": "Increases with material thickness and bullet instability",
"value": 0.0
},
"NeverRicochet": {
"_description": "Prevents bullets from ricocheting off this material",
"_use_cases": [
"Soft materials (rubber, sand)",
"Materials that always absorb bullets",
"Gameplay balance (prevent unintended ricochets)"
],
"_note": "Overrides ricochet calculations when true",
"value": false
},
"RicochetProbabilityMultiplier": {
"_description": "Scaling factor for ricochet probability calculations",
"_unit": "multiplier (1.0 = normal ricochet probability)",
"_range": "0.0-5.0 typical",
"_effects": {
"0.0": "No ricochets (same as NeverRicochet)",
"0.5": "Reduced ricochet probability",
"1.0": "Normal ricochet probability",
"2.0": "Increased ricochet probability",
"5.0": "Very high ricochet probability"
},
"_material_examples": {
"concrete": "0.8-1.2",
"steel": "1.0-1.5",
"water": "0.3-0.7",
"ice": "1.2-1.8"
},
"value": 1.0
},
"RicochetRestitution": {
"_description": "Energy retention coefficient during ricochet",
"_unit": "ratio (0.0-1.0)",
"_explanation": "Fraction of kinetic energy retained after ricochet",
"_physics": "Based on coefficient of restitution in collision physics",
"_typical_values": {
"very_soft": "0.1-0.3 (sand, mud)",
"soft": "0.3-0.5 (wood, concrete)",
"medium": "0.5-0.7 (steel, aluminum)",
"hard": "0.7-0.9 (hardened steel, tungsten)",
"ideal": "0.9-1.0 (theoretical perfectly elastic)"
},
"_note": "Higher values mean bullets retain more energy after ricochet",
"value": 0.5
},
"RicochetRestitutionInfluence": {
"_description": "How much material properties affect restitution calculation",
"_unit": "influence factor (0.0-1.0)",
"_explanation": "0.0 = fixed restitution, 1.0 = fully material-dependent",
"_typical_range": "0.0-0.5",
"_usage": "Allows fine-tuning of material influence on energy loss",
"value": 0.0
},
"RicochetFriction": {
"_description": "Friction coefficient affecting ricochet angle and spin",
"_unit": "coefficient of friction (0.0-2.0 typical)",
"_physics": "Determines tangential force during ricochet contact",
"_typical_values": {
"smooth_metal": "0.1-0.3",
"rough_metal": "0.3-0.6",
"concrete": "0.6-0.9",
"rubber": "0.8-1.2",
"very_rough": "1.2+ (textured surfaces)"
},
"_effects": [
"Higher friction increases bullet spin",
"Affects ricochet angle deviation",
"Influences energy loss during contact"
],
"value": 0.5
},
"RicochetFrictionInfluence": {
"_description": "How much friction affects the ricochet calculation",
"_unit": "influence factor (0.0-1.0)",
"_explanation": "0.0 = friction ignored, 1.0 = full friction effects",
"_typical_range": "0.0-0.8",
"_usage": "Allows realistic friction effects while maintaining performance",
"value": 0.0
},
"RicochetSpread": {
"_description": "Random angular deviation added to ricochet direction",
"_unit": "degrees of cone spread",
"_causes": [
"Surface irregularities",
"Bullet deformation",
"Material inhomogeneity"
],
"_typical_values": {
"smooth_surfaces": "0-5 degrees",
"rough_surfaces": "5-15 degrees",
"very_rough": "15-30 degrees",
"irregular": "30+ degrees"
},
"_realism": "Real ricochets are rarely perfectly predictable",
"value": 0.0
},
"EnableSpalling": {
"_description": "Whether this material generates spalling fragments when impacted",
"_explanation": "Spalling occurs when material fractures and ejects fragments from impact",
"_occurs_in": [
"Brittle materials (concrete, ceramics, glass)",
"Layered materials (armor plates)",
"Materials under tension stress"
],
"_note": "Computationally expensive - use selectively",
"value": false
},
"SpallVelocityThreshold": {
"_description": "Minimum impact velocity to generate spalling fragments",
"_unit": "centimeters per second (cm/s)",
"_conversion": "1 fps = 30.48 cm/s, 1 m/s = 100 cm/s",
"_typical_thresholds": {
"glass": "15000-30000 cm/s (500-1000 fps)",
"concrete": "30000-60000 cm/s (1000-2000 fps)",
"mild_steel": "60000-120000 cm/s (2000-4000 fps)",
"hardened_steel": "120000+ cm/s (4000+ fps)"
},
"_physics": "Based on material's dynamic fracture strength",
"value": 50000.0
},
"SpallFragmentCount": {
"_description": "Maximum number of spall fragments generated per impact",
"_unit": "count (integer)",
"_range": "1-20 typical (performance considerations)",
"_factors": [
"Impact energy",
"Material brittleness",
"Thickness",
"Computational limitations"
],
"_typical_values": {
"small_impact": "1-3 fragments",
"medium_impact": "3-8 fragments",
"large_impact": "8-15 fragments",
"massive_impact": "15+ fragments"
},
"value": 3
},
"SpallSpreadAngle": {
"_description": "Cone angle for spall fragment ejection",
"_unit": "degrees (0-180)",
"_physics": "Fragments typically eject in forward cone from impact point",
"_typical_values": {
"focused": "15-30 degrees (hard materials)",
"moderate": "30-60 degrees (typical materials)",
"wide": "60-90 degrees (soft/brittle materials)",
"hemispherical": "90+ degrees (extreme cases)"
},
"_note": "Larger angles create more dispersed fragment patterns",
"value": 45.0
},
"SpallVelocityMultiplier": {
"_description": "Fraction of impact velocity inherited by spall fragments",
"_unit": "ratio (0.0-1.0)",
"_physics": "Conservation of momentum with energy losses",
"_typical_values": {
"low_energy": "0.1-0.2 (material absorbs most energy)",
"medium_energy": "0.2-0.4 (typical spalling)",
"high_energy": "0.4-0.6 (explosive spalling)",
"extreme": "0.6+ (theoretical maximum)"
},
"_factors": "Material brittleness, fragment size, impact energy",
"value": 0.3
},
"SpallMassMultiplier": {
"_description": "Fraction of projectile mass inherited by each spall fragment",
"_unit": "ratio (0.0-1.0)",
"_calculation": "Fragment mass = bullet mass × multiplier ÷ fragment count",
"_typical_values": {
"fine_fragments": "0.01-0.05 (dust-like)",
"small_fragments": "0.05-0.15 (typical)",
"large_fragments": "0.15-0.3 (dangerous sized)",
"very_large": "0.3+ (rare, massive impacts)"
},
"_realism": "Total fragment mass should be reasonable fraction of material displaced",
"value": 0.1
},
"UseMathematicalProperties": {
"_description": "Enable detailed material science calculations",
"_explanation": "Uses engineering properties for more accurate ballistic modeling",
"_benefits": [
"More realistic penetration calculations",
"Temperature and strain rate effects",
"Scientific accuracy for research"
],
"_cost": "Increased computational complexity",
"value": true
},
"MathematicalProperties": {
"_description": "Detailed material science properties for accurate ballistic modeling",
"_note": "Values should be obtained from material testing or engineering handbooks",
"_reference": "ASTM standards, engineering material databases, scientific literature",
"DensityGPerCm3": {
"_description": "Material density",
"_unit": "grams per cubic centimeter (g/cm³)",
"_conversion": "1 g/cm³ = 1000 kg/m³ = 62.43 lb/ft³",
"_typical_values": {
"aluminum": "2.70 g/cm³",
"steel_mild": "7.85 g/cm³",
"steel_stainless": "8.0 g/cm³",
"titanium": "4.5 g/cm³",
"lead": "11.34 g/cm³",
"tungsten": "19.3 g/cm³",
"concrete": "2.4 g/cm³",
"wood_oak": "0.75 g/cm³",
"kevlar": "1.44 g/cm³"
},
"_importance": "Affects momentum transfer and penetration resistance",
"value": 7.85
},
"MaterialHardness": {
"_description": "Brinell hardness of the material",
"_unit": "Brinell Hardness Number (HB or BHN)",
"_test": "10mm steel ball, 3000kg load, 30 seconds",
"_typical_values": {
"aluminum_pure": "15-30 HB",
"aluminum_alloy": "30-150 HB",
"steel_mild": "120-200 HB",
"steel_carbon": "200-400 HB",
"steel_tool": "400-700 HB",
"titanium": "200-400 HB",
"brass": "60-200 HB",
"concrete": "20-40 HB (estimated)"
},
"_penetration_effect": "Harder materials resist penetration and deformation",
"value": 200.0
},
"TensileStrengthMPa": {
"_description": "Ultimate tensile strength - maximum stress before failure",
"_unit": "Megapascals (MPa)",
"_conversion": "1 MPa = 145.04 psi = 0.145 ksi",
"_typical_values": {
"aluminum_1100": "90-165 MPa",
"aluminum_6061": "240-310 MPa",
"steel_mild": "400-550 MPa",
"steel_carbon": "550-1000 MPa",
"steel_stainless": "500-750 MPa",
"titanium_cp": "240-550 MPa",
"concrete": "3-5 MPa (compression much higher)",
"kevlar_fiber": "3000-3500 MPa"
},
"_ballistic_relevance": "Determines material failure under impact stress",
"value": 400.0
},
"YieldStrengthMPa": {
"_description": "Yield strength - stress at which permanent deformation begins",
"_unit": "Megapascals (MPa)",
"_typical_ratio": "Usually 50-80% of tensile strength",
"_typical_values": {
"aluminum_1100": "35-145 MPa",
"aluminum_6061": "240-276 MPa",
"steel_mild": "250-400 MPa",
"steel_carbon": "400-700 MPa",
"steel_stainless": "200-300 MPa",
"titanium_cp": "170-485 MPa"
},
"_ballistic_relevance": "Determines when material begins permanent deformation during impact",
"value": 250.0
},
"ElasticModulusGPa": {
"_description": "Young's modulus - material stiffness",
"_unit": "Gigapascals (GPa)",
"_conversion": "1 GPa = 1000 MPa = 145,038 psi",
"_typical_values": {
"aluminum": "69-70 GPa",
"steel": "200-210 GPa",
"titanium": "105-120 GPa",
"concrete": "20-50 GPa",
"kevlar": "60-125 GPa",
"carbon_fiber": "150-500 GPa"
},
"_ballistic_relevance": "Affects stress wave propagation and material response time",
"value": 200.0
},
"BallisticLimitVelocity": {
"_description": "Velocity at which 50% of impacts will just penetrate completely",
"_unit": "feet per second (fps)",
"_conversion": "1 fps = 0.3048 m/s",
"_determination": "Experimental testing with specific projectile/material combinations",
"_typical_ranges": {
"thin_aluminum": "800-1500 fps",
"mild_steel_plate": "1500-3000 fps",
"hardened_steel": "2500-4500 fps",
"ceramic_armor": "2000-3500 fps",
"kevlar_vest": "1200-1800 fps"
},
"_note": "Highly dependent on projectile type, material thickness, and impact conditions",
"value": 2000.0
},
"PerforationCoefficient": {
"_description": "Empirical factor for perforation calculations",
"_unit": "dimensionless coefficient",
"_typical_range": "0.5-2.0",
"_usage": "Adjusts theoretical calculations to match experimental data",
"_values": {
"soft_materials": "0.5-0.8",
"typical_metals": "0.8-1.2",
"hard_materials": "1.2-2.0"
},
"value": 1.0
},
"EnergyAbsorptionCoefficient": {
"_description": "Fraction of projectile kinetic energy absorbed by material",
"_unit": "ratio (0.0-1.0)",
"_physics": "Energy dissipated through deformation, fracture, heat",
"_typical_values": {
"very_soft": "0.9-1.0 (sand, foam)",
"soft": "0.7-0.9 (wood, plastic)",
"medium": "0.5-0.7 (aluminum, mild steel)",
"hard": "0.3-0.5 (hardened steel, ceramics)",
"very_hard": "0.1-0.3 (tungsten, depleted uranium)"
},
"_note": "Higher values mean more energy absorbed, less exit velocity",
"value": 0.7
},
"EnableMathematicalSpalling": {
"_description": "Use physics-based spalling calculations instead of simple model",
"_benefits": [
"Stress-based fragment generation",
"Realistic fragment size distribution",
"Velocity-dependent fragment count"
],
"_cost": "Significantly more computational overhead",
"value": false
},
"SpallStrengthMPa": {
"_description": "Dynamic tensile strength - stress required to cause spalling",
"_unit": "Megapascals (MPa)",
"_physics": "Material's resistance to tensile failure under shock loading",
"_typical_values": {
"concrete": "2-8 MPa",
"aluminum": "100-300 MPa",
"mild_steel": "150-400 MPa",
"hardened_steel": "200-600 MPa",
"ceramics": "50-200 MPa",
"composites": "20-100 MPa"
},
"_note": "Usually lower than static tensile strength due to high strain rates",
"value": 150.0
},
"CriticalStressFactor": {
"_description": "Multiplier for stress calculations in spalling",
"_unit": "dimensionless factor",
"_typical_range": "1.5-4.0",
"_physics": "Accounts for stress concentration, dynamic effects, material flaws",
"_calibration": "Adjust to match experimental spalling thresholds",
"value": 2.5
},
"FragmentVelocityEfficiency": {
"_description": "Efficiency of momentum transfer to spall fragments",
"_unit": "ratio (0.0-1.0)",
"_physics": "Based on conservation of momentum and energy dissipation",
"_typical_values": {
"brittle_materials": "0.1-0.3",
"ductile_materials": "0.2-0.4",
"optimal_conditions": "0.3-0.5"
},
"_factors": "Fragment size, material properties, impact energy",
"value": 0.25
},
"AverageFragmentMassRatio": {
"_description": "Average mass of fragments relative to total spalled material",
"_unit": "ratio (0.0-1.0)",
"_explanation": "Controls fragment size distribution - smaller ratios create more, smaller fragments",
"_typical_values": {
"fine_fragmentation": "0.01-0.05",
"normal_fragmentation": "0.05-0.15",
"coarse_fragmentation": "0.15-0.3"
},
"value": 0.08
},
"FragmentSizeExponent": {
"_description": "Power law exponent for fragment size distribution",
"_unit": "dimensionless exponent",
"_physics": "Based on fracture mechanics - typically negative values",
"_typical_range": "-2.5 to -1.0",
"_meaning": {
"-2.5": "Many small fragments, few large ones",
"-2.0": "Moderate distribution",
"-1.5": "More uniform fragment sizes",
"-1.0": "Tendency toward larger fragments"
},
"_reference": "Mott fragmentation theory, Weibull distributions",
"value": -1.6
},
"MaxFragmentDensity": {
"_description": "Maximum number of fragments per unit impact area",
"_unit": "fragments per square centimeter",
"_purpose": "Prevents excessive fragment generation that could impact performance",
"_typical_limits": {
"low_detail": "10-25 fragments/cm²",
"medium_detail": "25-75 fragments/cm²",
"high_detail": "75-150 fragments/cm²",
"research_quality": "150+ fragments/cm²"
},
"_balance": "Higher values increase realism but reduce performance",
"value": 50.0
}
}
}