525 lines
19 KiB
JSON
525 lines
19 KiB
JSON
{
|
||
"_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
|
||
}
|
||
}
|
||
} |