g
This commit is contained in:
@@ -0,0 +1,149 @@
|
||||
# EasyBallistics JSON Import/Export Tool
|
||||
|
||||
## Overview
|
||||
|
||||
The EasyBallistics JSON Import/Export Tool allows you to import and export bullet properties and material response configurations as JSON files. This is useful for:
|
||||
|
||||
- Sharing ballistic configurations between projects
|
||||
- Backing up and versioning ballistic data
|
||||
- Batch editing configurations outside of Unreal Engine
|
||||
- Integration with external ballistics calculators
|
||||
|
||||
## Accessing the Tool
|
||||
|
||||
1. In the Unreal Engine editor, go to **Window > Ballistics JSON Import/Export**
|
||||
2. This will open the JSON Import/Export tool window
|
||||
|
||||
## Features
|
||||
|
||||
### Bullet Properties Export/Import
|
||||
|
||||
**Export**: Creates a JSON file with all mathematical bullet properties including:
|
||||
- Basic properties (grain weight, diameter, length, bullet type, material)
|
||||
- Ballistic coefficients (G1/G7)
|
||||
- Penetration properties (hardness, energy thresholds, expansion)
|
||||
|
||||
**Import**: Loads bullet properties from a JSON file and can create new bullet property assets
|
||||
|
||||
### Material Response Export/Import
|
||||
|
||||
**Export**: Creates a JSON file with material response settings including:
|
||||
- Artistic properties (penetration, ricochet settings)
|
||||
- Spalling properties (fragment generation)
|
||||
- Mathematical material properties (density, hardness, strength values)
|
||||
|
||||
**Import**: Loads material response configurations from JSON files
|
||||
|
||||
## JSON Format Examples
|
||||
|
||||
### Bullet Properties JSON Structure
|
||||
|
||||
```json
|
||||
{
|
||||
"GrainWeight": 55.0,
|
||||
"DiameterInches": 0.224,
|
||||
"LengthInches": 0.825,
|
||||
"BulletType": 0,
|
||||
"BulletMaterial": 3,
|
||||
"BallisticCoefficientG1": 0.151,
|
||||
"BallisticCoefficientG7": 0.076,
|
||||
"UseG7Model": false,
|
||||
"SectionalDensity": 0.0,
|
||||
"BulletHardness": 15.0,
|
||||
"PenetrationEnergyThreshold": 58.0,
|
||||
"ExpansionVelocityThreshold": 1800.0,
|
||||
"MaxExpansionMultiplier": 1.5
|
||||
}
|
||||
```
|
||||
|
||||
### Material Response JSON Structure
|
||||
|
||||
```json
|
||||
{
|
||||
"PenTraceType": 0,
|
||||
"NeverPenetrate": false,
|
||||
"PenetrationDepthMultiplier": 1.0,
|
||||
"PenetrationNormalization": 0.0,
|
||||
"PenetrationNormalizationGrazing": 0.0,
|
||||
"PenetrationEntryAngleSpread": 0.0,
|
||||
"PenetrationExitAngleSpread": 0.0,
|
||||
"NeverRicochet": false,
|
||||
"RicochetProbabilityMultiplier": 1.0,
|
||||
"RicochetRestitution": 0.5,
|
||||
"RicochetRestitutionInfluence": 0.0,
|
||||
"RicochetFriction": 0.5,
|
||||
"RicochetFrictionInfluence": 0.0,
|
||||
"RicochetSpread": 0.0,
|
||||
"EnableSpalling": false,
|
||||
"SpallVelocityThreshold": 50000.0,
|
||||
"SpallFragmentCount": 3,
|
||||
"SpallSpreadAngle": 45.0,
|
||||
"SpallVelocityMultiplier": 0.3,
|
||||
"SpallMassMultiplier": 0.1,
|
||||
"UseMathematicalProperties": false,
|
||||
"MathematicalProperties": {
|
||||
"DensityGPerCm3": 7.85,
|
||||
"MaterialHardness": 200.0,
|
||||
"TensileStrengthMPa": 400.0,
|
||||
"YieldStrengthMPa": 250.0,
|
||||
"ElasticModulusGPa": 200.0,
|
||||
"BallisticLimitVelocity": 2000.0,
|
||||
"PerforationCoefficient": 1.0,
|
||||
"EnergyAbsorptionCoefficient": 0.7,
|
||||
"EnableMathematicalSpalling": false,
|
||||
"SpallStrengthMPa": 150.0,
|
||||
"CriticalStressFactor": 2.5,
|
||||
"FragmentVelocityEfficiency": 0.25,
|
||||
"AverageFragmentMassRatio": 0.08,
|
||||
"FragmentSizeExponent": -1.6,
|
||||
"MaxFragmentDensity": 50.0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Enum Values Reference
|
||||
|
||||
### BulletType
|
||||
- 0: Full Metal Jacket
|
||||
- 1: Hollow Point
|
||||
- 2: Soft Point
|
||||
- 3: Armor Piercing
|
||||
- 4: Armor Piercing Incendiary
|
||||
- 5: Tracer
|
||||
- 6: Match Grade
|
||||
- 7: Frangible
|
||||
- 8: Lead Round Nose
|
||||
- 9: Wadcutter
|
||||
- 10: Semi-Wadcutter
|
||||
- 11: Custom
|
||||
|
||||
### BulletMaterial
|
||||
- 0: Lead
|
||||
- 1: Lead-Antimony
|
||||
- 2: Copper
|
||||
- 3: Copper Jacket
|
||||
- 4: Brass
|
||||
- 5: Steel
|
||||
- 6: Tungsten
|
||||
- 7: Bismuth
|
||||
- 8: Zinc
|
||||
- 9: Custom
|
||||
|
||||
### PenTraceType
|
||||
- 0: Back Trace
|
||||
- 1: By Component
|
||||
- 2: Double Sided Geometry
|
||||
|
||||
## Usage Tips
|
||||
|
||||
1. **Backup Before Import**: Always backup your existing assets before importing new configurations
|
||||
2. **Validation**: The tool performs basic validation but always test imported configurations in your project
|
||||
3. **Version Control**: Include JSON files in your version control system for configuration tracking
|
||||
4. **Batch Operations**: You can modify multiple configurations by editing JSON files in bulk
|
||||
|
||||
## Technical Notes
|
||||
|
||||
- The tool uses Unreal Engine's JSON parsing system for reliability
|
||||
- All numeric values maintain their original precision
|
||||
- Boolean and enum values are preserved exactly
|
||||
- The tool supports the complete EasyBallistics property set
|
||||
@@ -0,0 +1,324 @@
|
||||
# Parameter Validation Reference
|
||||
|
||||
## Overview
|
||||
|
||||
This document provides comprehensive validation ranges, typical values, and quality assurance guidelines for ballistic simulation parameters. Use this reference to verify that your configuration values are physically realistic and within expected bounds.
|
||||
|
||||
## Bullet Properties Validation
|
||||
|
||||
### Physical Dimensions
|
||||
|
||||
#### Grain Weight Validation
|
||||
| Caliber Category | Typical Range (grains) | Examples |
|
||||
|------------------|------------------------|----------|
|
||||
| Rimfire | 20-60 | .22 LR: 30-40 gr |
|
||||
| Small Pistol | 60-130 | 9mm: 115-147 gr |
|
||||
| Large Pistol | 130-300 | .45 ACP: 200-230 gr |
|
||||
| Small Rifle | 40-90 | .223: 55-77 gr |
|
||||
| Medium Rifle | 100-200 | .308: 150-180 gr |
|
||||
| Large Rifle | 200-500 | .338: 250-300 gr |
|
||||
| Anti-Material | 500-750+ | .50 BMG: 647-750 gr |
|
||||
|
||||
**Quality Checks:**
|
||||
- Weight should correlate with caliber size
|
||||
- Unusually light bullets (<20 gr) may indicate frangible/training rounds
|
||||
- Unusually heavy bullets (>300 gr for caliber) may indicate specialty rounds
|
||||
|
||||
#### Diameter Validation
|
||||
| Caliber | Actual Diameter (inches) | Metric Equivalent |
|
||||
|---------|--------------------------|-------------------|
|
||||
| .17 | 0.172 | 4.37mm |
|
||||
| .22 | 0.224 | 5.69mm |
|
||||
| .24 | 0.243 | 6.17mm |
|
||||
| .25 | 0.257 | 6.53mm |
|
||||
| .27 | 0.277 | 7.04mm |
|
||||
| .28 | 0.284 | 7.21mm |
|
||||
| .30 | 0.308 | 7.82mm |
|
||||
| .32 | 0.312 | 7.92mm |
|
||||
| .35 | 0.358 | 9.09mm |
|
||||
| .38 | 0.357 | 9.07mm |
|
||||
| .40 | 0.400 | 10.16mm |
|
||||
| .44 | 0.429 | 10.90mm |
|
||||
| .45 | 0.452 | 11.48mm |
|
||||
| .50 | 0.510 | 12.95mm |
|
||||
|
||||
**Quality Checks:**
|
||||
- Diameter must be positive and reasonable (0.1-0.8 inches typical)
|
||||
- Should match known caliber specifications
|
||||
- Metric conversions should be consistent
|
||||
|
||||
#### Length-to-Diameter Ratio
|
||||
| Bullet Type | Typical L/D Ratio | Length Range (inches) |
|
||||
|-------------|-------------------|----------------------|
|
||||
| Round Nose | 1.5-2.5 | Short, traditional design |
|
||||
| Spitzer | 2.5-4.0 | Pointed, aerodynamic |
|
||||
| Boat Tail | 3.0-4.5 | Long, high BC |
|
||||
| VLD | 4.0-6.0 | Very Low Drag, match |
|
||||
| Solid | 2.0-5.0 | Monolithic construction |
|
||||
|
||||
**Quality Checks:**
|
||||
- L/D ratio should be realistic for bullet type
|
||||
- Very long bullets (L/D > 6) may have stability issues
|
||||
- Very short bullets (L/D < 1.5) are unusual outside specialty applications
|
||||
|
||||
### Ballistic Coefficients
|
||||
|
||||
#### G1 Ballistic Coefficient Ranges
|
||||
| Bullet Shape | BC Range | Description |
|
||||
|--------------|----------|-------------|
|
||||
| Round Nose | 0.15-0.25 | Traditional, poor aerodynamics |
|
||||
| Flat Point | 0.20-0.30 | Lever gun bullets |
|
||||
| Spitzer | 0.25-0.45 | Standard pointed bullets |
|
||||
| Boat Tail | 0.35-0.55 | Improved base design |
|
||||
| Match/VLD | 0.45-0.70+ | Optimized for accuracy |
|
||||
| Ultra-High BC | 0.70-1.0+ | Specialized long-range |
|
||||
|
||||
#### G7 to G1 Conversion
|
||||
- G7 BC typically 0.5-0.7× the G1 value for modern bullets
|
||||
- Conversion varies by bullet shape and velocity regime
|
||||
- G7 more accurate for boat-tail designs
|
||||
|
||||
**Quality Checks:**
|
||||
- BC should correlate with bullet shape and quality
|
||||
- Extremely high BC (>0.8 G1) requires verification
|
||||
- G7 values should be lower than corresponding G1 values
|
||||
|
||||
### Material Properties
|
||||
|
||||
#### Bullet Hardness (BHN)
|
||||
| Material | Hardness Range | Applications |
|
||||
|----------|----------------|--------------|
|
||||
| Pure Lead | 5-8 BHN | Cast bullets, training |
|
||||
| Wheel Weights | 12-15 BHN | Economy cast bullets |
|
||||
| Linotype | 22-25 BHN | Hard cast bullets |
|
||||
| Swaged Lead | 8-12 BHN | Commercial lead bullets |
|
||||
| Copper Plated | 10-15 BHN | Plated lead core |
|
||||
| Copper Jacket | 15-25 BHN | FMJ bullets |
|
||||
| Brass | 60-120 BHN | Solid brass bullets |
|
||||
| Copper Solid | 35-80 BHN | Monolithic copper |
|
||||
| Steel Core | 150-300 BHN | AP bullets |
|
||||
| Tungsten | 300-400 BHN | High-density cores |
|
||||
|
||||
**Quality Checks:**
|
||||
- Hardness should match material type
|
||||
- Jacket hardness is composite value including core
|
||||
- Extremely hard bullets (>400 BHN) are specialized
|
||||
|
||||
#### Energy and Velocity Thresholds
|
||||
|
||||
**Penetration Energy Threshold (ft-lbs)**
|
||||
| Application | Energy Range | Examples |
|
||||
|-------------|--------------|----------|
|
||||
| Small Game | 10-25 | Squirrel, rabbit |
|
||||
| Varmint | 25-75 | Prairie dog, coyote |
|
||||
| Deer | 75-150 | White-tail deer |
|
||||
| Elk | 150-300 | Large game |
|
||||
| Dangerous Game | 300-500+ | Bear, buffalo |
|
||||
| Armor Piercing | 500-2000+ | Military applications |
|
||||
|
||||
**Expansion Velocity Threshold (fps)**
|
||||
| Bullet Type | Velocity Range | Notes |
|
||||
|-------------|----------------|-------|
|
||||
| Handgun HP | 800-1200 | Lower velocity expansion |
|
||||
| Rifle HP | 1600-2200 | Standard hunting bullets |
|
||||
| Premium Hunting | 1400-1800 | Controlled expansion |
|
||||
| Varmint | 2000-3000 | Rapid expansion |
|
||||
| Match | N/A | Non-expanding |
|
||||
|
||||
**Quality Checks:**
|
||||
- Energy thresholds should match intended use
|
||||
- Expansion velocities should be achievable at impact range
|
||||
- Thresholds should be lower than typical muzzle velocities
|
||||
|
||||
## Material Response Validation
|
||||
|
||||
### Physical Properties
|
||||
|
||||
#### Density Values (g/cm³)
|
||||
| Material Category | Density Range | Common Materials |
|
||||
|-------------------|---------------|------------------|
|
||||
| Woods | 0.3-1.2 | Balsa (0.16), Oak (0.75), Ebony (1.2) |
|
||||
| Plastics | 0.9-2.0 | PE (0.95), Nylon (1.15), PVC (1.4) |
|
||||
| Aluminum Alloys | 2.6-2.8 | 1100 (2.71), 6061 (2.70), 7075 (2.81) |
|
||||
| Concrete | 2.0-2.8 | Normal (2.4), High-strength (2.6) |
|
||||
| Titanium Alloys | 4.4-4.9 | Ti-6Al-4V (4.43), CP Ti (4.51) |
|
||||
| Steel | 7.7-8.1 | Mild (7.85), Stainless (8.0) |
|
||||
| Lead | 11.3-11.4 | Pure lead (11.34) |
|
||||
| Tungsten | 19.2-19.3 | Pure tungsten (19.25) |
|
||||
|
||||
#### Hardness Correlation
|
||||
**Brinell Hardness (HB)**
|
||||
| Material | Hardness Range | Strength Correlation |
|
||||
|----------|----------------|---------------------|
|
||||
| Aluminum (soft) | 15-30 | Low strength |
|
||||
| Aluminum (hard) | 60-150 | Heat treated |
|
||||
| Steel (mild) | 120-200 | Structural steel |
|
||||
| Steel (medium) | 200-300 | Heat treated |
|
||||
| Steel (hard) | 300-500 | Tool steel |
|
||||
| Steel (very hard) | 500-700 | Hardened/tempered |
|
||||
| Ceramics | 1000-2000+ | Very brittle |
|
||||
|
||||
**Quality Checks:**
|
||||
- Hardness should correlate with tensile strength
|
||||
- Rule of thumb: BHN ≈ 3.45 × Tensile Strength (ksi)
|
||||
- Very hard materials often brittle
|
||||
|
||||
#### Strength Properties (MPa)
|
||||
|
||||
**Tensile Strength Ranges**
|
||||
| Material Class | Yield Strength | Tensile Strength | Ratio (Yield/Tensile) |
|
||||
|----------------|----------------|------------------|----------------------|
|
||||
| Aluminum (soft) | 35-100 | 90-200 | 0.4-0.5 |
|
||||
| Aluminum (hard) | 200-500 | 300-600 | 0.6-0.8 |
|
||||
| Steel (mild) | 200-400 | 400-600 | 0.5-0.7 |
|
||||
| Steel (high strength) | 400-1000 | 600-1200 | 0.7-0.8 |
|
||||
| Stainless Steel | 200-800 | 500-1000 | 0.4-0.8 |
|
||||
| Titanium | 200-1000 | 300-1200 | 0.6-0.8 |
|
||||
|
||||
**Quality Checks:**
|
||||
- Yield strength must be ≤ tensile strength
|
||||
- Typical ratio: yield = 50-80% of tensile
|
||||
- Higher ratios indicate brittle materials
|
||||
|
||||
### Ballistic Properties
|
||||
|
||||
#### Ballistic Limit Velocities (fps)
|
||||
| Material/Thickness | Velocity Range | Projectile Type |
|
||||
|-------------------|----------------|-----------------|
|
||||
| Aluminum 0.25" | 800-1500 | Standard ball |
|
||||
| Steel 0.25" | 1500-2500 | Standard ball |
|
||||
| Steel 0.5" | 2500-3500 | Standard ball |
|
||||
| Kevlar vest | 1200-1800 | Handgun bullets |
|
||||
| Ceramic tile | 2000-3500 | Rifle bullets |
|
||||
| Glass | 200-800 | Low-velocity impacts |
|
||||
|
||||
#### Energy Absorption Coefficients
|
||||
| Material Type | Coefficient Range | Mechanism |
|
||||
|---------------|-------------------|-----------|
|
||||
| Soft (foam, sand) | 0.8-1.0 | Compression/displacement |
|
||||
| Wood/Plastic | 0.6-0.8 | Crushing/deformation |
|
||||
| Aluminum | 0.5-0.7 | Plastic deformation |
|
||||
| Mild Steel | 0.4-0.6 | Plastic deformation |
|
||||
| Hard Steel | 0.2-0.4 | Limited deformation |
|
||||
| Ceramics | 0.3-0.5 | Fracture/pulverization |
|
||||
|
||||
### Ricochet Properties
|
||||
|
||||
#### Ricochet Probability by Material
|
||||
| Surface Type | Probability Multiplier | Impact Angle Dependency |
|
||||
|--------------|------------------------|------------------------|
|
||||
| Water | 0.3-0.7 | High angle dependency |
|
||||
| Concrete | 0.8-1.2 | Moderate dependency |
|
||||
| Steel (mild) | 1.0-1.5 | Low angle dependency |
|
||||
| Steel (hard) | 1.2-2.0 | Very low dependency |
|
||||
| Ice | 1.2-1.8 | Temperature dependent |
|
||||
| Rock/Stone | 0.6-1.4 | Surface roughness dependent |
|
||||
|
||||
#### Restitution Coefficients
|
||||
| Material Pair | Coefficient Range | Energy Retention |
|
||||
|---------------|-------------------|------------------|
|
||||
| Lead-Steel | 0.2-0.4 | Low retention |
|
||||
| Copper-Steel | 0.3-0.5 | Moderate retention |
|
||||
| Steel-Steel | 0.5-0.7 | High retention |
|
||||
| Tungsten-Steel | 0.6-0.8 | Very high retention |
|
||||
|
||||
### Spalling Parameters
|
||||
|
||||
#### Velocity Thresholds by Material
|
||||
| Material | Threshold (cm/s) | Threshold (fps) | Fragment Characteristics |
|
||||
|----------|------------------|-----------------|-------------------------|
|
||||
| Glass | 15,000-30,000 | 500-1000 | Sharp, dangerous |
|
||||
| Concrete | 30,000-60,000 | 1000-2000 | Angular, dust |
|
||||
| Aluminum | 60,000-90,000 | 2000-3000 | Metal flakes |
|
||||
| Mild Steel | 90,000-150,000 | 3000-5000 | Metal fragments |
|
||||
| Hard Steel | 150,000+ | 5000+ | Small, high-velocity |
|
||||
|
||||
#### Fragment Count Guidelines
|
||||
| Impact Energy | Fragment Count | Material Type |
|
||||
|---------------|----------------|---------------|
|
||||
| Low (<1000 ft-lbs) | 1-3 | Brittle materials only |
|
||||
| Medium (1000-5000) | 3-8 | Most materials |
|
||||
| High (5000-15000) | 8-15 | High-energy impacts |
|
||||
| Very High (>15000) | 15-25 | Extreme conditions |
|
||||
|
||||
**Quality Checks:**
|
||||
- Fragment count should scale with impact energy
|
||||
- Brittle materials generate more fragments
|
||||
- Consider computational cost vs. realism
|
||||
|
||||
## Validation Procedures
|
||||
|
||||
### Cross-Reference Validation
|
||||
1. **Material Databases**: ASM International, NIST
|
||||
2. **Military Standards**: MIL-HDBK, NATO STANAGs
|
||||
3. **Industry Standards**: ASTM, SAE, AISI
|
||||
4. **Academic Literature**: Peer-reviewed journals
|
||||
|
||||
### Physical Consistency Checks
|
||||
1. **Density-Strength Correlation**: Generally, denser materials are stronger
|
||||
2. **Hardness-Strength Relationship**: BHN ≈ 3.45 × UTS (ksi)
|
||||
3. **Yield-Tensile Ratio**: Yield typically 50-80% of tensile strength
|
||||
4. **Elastic Modulus**: Should match material class
|
||||
|
||||
### Ballistic Reasonableness
|
||||
1. **BC vs. Shape**: High BC requires good aerodynamic shape
|
||||
2. **Energy vs. Caliber**: Larger calibers generally have more energy
|
||||
3. **Velocity Thresholds**: Should be achievable at intended range
|
||||
4. **Material Response**: Should match known ballistic test results
|
||||
|
||||
### Common Validation Errors
|
||||
|
||||
#### Bullet Properties
|
||||
- **Impossible BC**: Values >1.0 require careful verification
|
||||
- **Mismatched Dimensions**: Diameter doesn't match caliber designation
|
||||
- **Unrealistic Hardness**: Values inconsistent with material type
|
||||
- **Inappropriate Thresholds**: Energy/velocity values too high/low for application
|
||||
|
||||
#### Material Properties
|
||||
- **Inverted Strength Values**: Yield > tensile strength
|
||||
- **Impossible Density**: Values outside known material ranges
|
||||
- **Inconsistent Hardness**: Doesn't correlate with strength values
|
||||
- **Unrealistic Ballistic Limits**: Too high/low for material thickness
|
||||
|
||||
### Quality Assurance Checklist
|
||||
|
||||
#### Before Simulation
|
||||
- [ ] All values within documented ranges
|
||||
- [ ] Physical relationships consistent (yield ≤ tensile, etc.)
|
||||
- [ ] Units correct and consistent
|
||||
- [ ] Sources documented for traceability
|
||||
- [ ] Cross-referenced with multiple sources
|
||||
|
||||
#### During Simulation
|
||||
- [ ] Results match expected physical behavior
|
||||
- [ ] No obvious artifacts or anomalies
|
||||
- [ ] Performance acceptable for application
|
||||
- [ ] Sensitivity analysis completed
|
||||
|
||||
#### After Simulation
|
||||
- [ ] Results compared to experimental data when available
|
||||
- [ ] Peer review of critical parameters
|
||||
- [ ] Documentation updated with lessons learned
|
||||
- [ ] Parameters archived for reproducibility
|
||||
|
||||
## Recommended References
|
||||
|
||||
### Primary Sources
|
||||
1. **ASM International Handbook Series** - Comprehensive material properties
|
||||
2. **Military Ballistics Handbooks** - Validated ballistic data
|
||||
3. **NIST Material Database** - Standardized property values
|
||||
4. **Manufacturer Specifications** - Bullet and ammunition data
|
||||
|
||||
### Academic Journals
|
||||
1. **International Journal of Impact Engineering**
|
||||
2. **Journal of Applied Physics**
|
||||
3. **Experimental Mechanics**
|
||||
4. **Defence Technology**
|
||||
|
||||
### Professional Organizations
|
||||
1. **SAAMI** - Sporting ammunition standards
|
||||
2. **NATO** - Military ammunition specifications
|
||||
3. **ASTM International** - Testing standards
|
||||
4. **ASM International** - Materials engineering
|
||||
|
||||
This validation reference ensures that ballistic simulations are based on physically realistic and well-documented parameters, supporting credible research and engineering applications.
|
||||
@@ -0,0 +1,265 @@
|
||||
# EasyBallistics JSON Configuration Guide for Researchers
|
||||
|
||||
## Overview
|
||||
|
||||
This guide is designed for researchers, engineers, and scientists who need to configure ballistic simulation parameters without requiring knowledge of game development or Unreal Engine. The configuration files use self-documenting JSON format with embedded explanations.
|
||||
|
||||
## Getting Started
|
||||
|
||||
### Understanding the JSON Structure
|
||||
|
||||
Each configuration file follows this pattern:
|
||||
```json
|
||||
{
|
||||
"ParameterName": {
|
||||
"_description": "What this parameter does",
|
||||
"_unit": "Units of measurement",
|
||||
"_typical_values": "Expected ranges",
|
||||
"_examples": "Real-world examples",
|
||||
"value": actual_numeric_value
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**Important**: The underscore-prefixed fields (`_description`, `_unit`, etc.) are documentation only. The `value` field contains the actual parameter that affects the simulation.
|
||||
|
||||
### File Types
|
||||
|
||||
1. **Bullet Properties** (`Sample_BulletProperties.json`) - Physical and ballistic characteristics of projectiles
|
||||
2. **Material Response** (`Sample_MaterialResponse.json`) - How materials respond to ballistic impact
|
||||
|
||||
## Bullet Properties Configuration
|
||||
|
||||
### Essential Parameters
|
||||
|
||||
#### Mass and Dimensions
|
||||
- **GrainWeight**: Projectile mass in grains (1 grain = 0.0647989 grams)
|
||||
- Small caliber: 20-80 grains
|
||||
- Medium caliber: 80-200 grains
|
||||
- Large caliber: 200-750+ grains
|
||||
|
||||
- **DiameterInches**: Bullet diameter in inches
|
||||
- Common values: 0.224" (5.56mm), 0.308" (7.62mm), 0.452" (45 ACP)
|
||||
|
||||
- **LengthInches**: Overall bullet length
|
||||
- Typically 0.4-2.0 inches depending on caliber
|
||||
|
||||
#### Ballistic Coefficients
|
||||
Choose **either** G1 or G7 model (set UseG7Model accordingly):
|
||||
|
||||
- **G1 Model**: Traditional standard, good for round-nose bullets
|
||||
- Poor: 0.15-0.25
|
||||
- Average: 0.25-0.45
|
||||
- Excellent: 0.65+
|
||||
|
||||
- **G7 Model**: Better for modern pointed bullets
|
||||
- Typically 0.5-0.7× the G1 value
|
||||
- More accurate for boat-tail designs
|
||||
|
||||
#### Material Properties
|
||||
- **BulletHardness**: Brinell Hardness Number
|
||||
- Lead: 5-15 BHN
|
||||
- Copper jacket: 15-25 BHN
|
||||
- Steel core: 150-600 BHN
|
||||
|
||||
- **PenetrationEnergyThreshold**: Minimum energy for penetration (ft-lbs)
|
||||
- Varies by intended use: 10-500+ ft-lbs
|
||||
|
||||
### Research Applications
|
||||
|
||||
#### Ballistics Research
|
||||
For academic ballistics research, focus on:
|
||||
- Accurate ballistic coefficients from wind tunnel data
|
||||
- Precise mass and dimensional measurements
|
||||
- Material hardness from standardized testing
|
||||
|
||||
#### Terminal Ballistics Studies
|
||||
For penetration and wound ballistics:
|
||||
- Expansion characteristics (velocity thresholds, max expansion)
|
||||
- Energy transfer parameters
|
||||
- Material-specific hardness values
|
||||
|
||||
#### Forensic Applications
|
||||
For bullet identification and trajectory analysis:
|
||||
- Precise dimensional measurements
|
||||
- Material composition data
|
||||
- Manufacturer-specific variations
|
||||
|
||||
## Material Response Configuration
|
||||
|
||||
### Penetration Mechanics
|
||||
|
||||
#### Basic Penetration
|
||||
- **PenetrationDepthMultiplier**: Scaling factor (0.1-10.0)
|
||||
- Use 1.0 as baseline, adjust based on experimental data
|
||||
- Values <1.0 for harder materials, >1.0 for softer
|
||||
|
||||
- **PenetrationNormalization**: Angle dependency (degrees)
|
||||
- 0-15°: Soft materials (wood, plastic)
|
||||
- 15-30°: Medium materials (aluminum, mild steel)
|
||||
- 30-60°: Hard materials (armor steel, ceramics)
|
||||
|
||||
#### Advanced Penetration Modeling
|
||||
When **UseMathematicalProperties** is enabled:
|
||||
|
||||
- **DensityGPerCm3**: Material density from engineering handbooks
|
||||
- **TensileStrengthMPa**: Ultimate tensile strength from material testing
|
||||
- **YieldStrengthMPa**: Yield strength (typically 50-80% of tensile strength)
|
||||
- **BallisticLimitVelocity**: V50 velocity from ballistic testing
|
||||
|
||||
### Ricochet Behavior
|
||||
|
||||
#### Key Parameters
|
||||
- **RicochetProbabilityMultiplier**: Likelihood scaling (0.0-5.0)
|
||||
- 0.0: No ricochets (soft materials)
|
||||
- 1.0: Normal probability
|
||||
- 2.0+: High ricochet materials (hardened steel, ice)
|
||||
|
||||
- **RicochetRestitution**: Energy retention (0.0-1.0)
|
||||
- Soft materials: 0.1-0.3
|
||||
- Hard materials: 0.7-0.9
|
||||
|
||||
### Spalling and Fragmentation
|
||||
|
||||
#### When to Enable Spalling
|
||||
Spalling is relevant for:
|
||||
- Brittle materials (concrete, ceramics, glass)
|
||||
- High-energy impacts (>2000 fps)
|
||||
- Research into secondary fragmentation effects
|
||||
|
||||
#### Critical Parameters
|
||||
- **SpallVelocityThreshold**: Minimum impact velocity (cm/s)
|
||||
- Glass: 15,000-30,000 cm/s
|
||||
- Concrete: 30,000-60,000 cm/s
|
||||
- Steel: 60,000+ cm/s
|
||||
|
||||
- **SpallFragmentCount**: Number of fragments (1-20)
|
||||
- Balance realism vs. computational cost
|
||||
- Typical: 3-8 fragments for most materials
|
||||
|
||||
## Data Sources and Validation
|
||||
|
||||
### Recommended References
|
||||
|
||||
#### Bullet Properties
|
||||
1. **Manufacturer Data**: Official ballistic coefficients and specifications
|
||||
2. **Ballistic Tables**: Sierra, Hornady, Nosler reloading manuals
|
||||
3. **Military Standards**: NATO STANAG documents for military ammunition
|
||||
4. **SAAMI Standards**: Sporting Arms and Ammunition Manufacturers' Institute
|
||||
|
||||
#### Material Properties
|
||||
1. **ASTM Standards**: Material testing standards (E8, E10, etc.)
|
||||
2. **Engineering Handbooks**: ASM Metals Handbook, Machinery's Handbook
|
||||
3. **Research Literature**: Journal of Applied Physics, International Journal of Impact Engineering
|
||||
4. **Government Databases**: NIST materials database, military research reports
|
||||
|
||||
### Experimental Validation
|
||||
|
||||
#### Ballistic Testing
|
||||
- Use chronographs for velocity measurements
|
||||
- Ballistic gelatin for terminal performance
|
||||
- Steel plate testing for penetration limits
|
||||
- High-speed photography for fragment analysis
|
||||
|
||||
#### Material Testing
|
||||
- Tensile testing per ASTM E8
|
||||
- Hardness testing per ASTM E10
|
||||
- Impact testing per ASTM E23
|
||||
- Ballistic limit testing per MIL-STD protocols
|
||||
|
||||
## Common Material Examples
|
||||
|
||||
### Metals
|
||||
```json
|
||||
// Mild Steel (A36)
|
||||
"DensityGPerCm3": 7.85,
|
||||
"MaterialHardness": 150.0,
|
||||
"TensileStrengthMPa": 400.0,
|
||||
"YieldStrengthMPa": 250.0
|
||||
|
||||
// Aluminum 6061-T6
|
||||
"DensityGPerCm3": 2.70,
|
||||
"MaterialHardness": 95.0,
|
||||
"TensileStrengthMPa": 310.0,
|
||||
"YieldStrengthMPa": 276.0
|
||||
|
||||
// Hardened Steel (Armor)
|
||||
"DensityGPerCm3": 7.85,
|
||||
"MaterialHardness": 500.0,
|
||||
"TensileStrengthMPa": 1200.0,
|
||||
"YieldStrengthMPa": 1000.0
|
||||
```
|
||||
|
||||
### Ceramics and Composites
|
||||
```json
|
||||
// Alumina Ceramic
|
||||
"DensityGPerCm3": 3.95,
|
||||
"MaterialHardness": 1500.0,
|
||||
"TensileStrengthMPa": 300.0,
|
||||
"YieldStrengthMPa": 300.0,
|
||||
"EnableSpalling": true
|
||||
|
||||
// Kevlar Composite
|
||||
"DensityGPerCm3": 1.44,
|
||||
"MaterialHardness": 50.0,
|
||||
"TensileStrengthMPa": 3500.0,
|
||||
"YieldStrengthMPa": 3500.0,
|
||||
"NeverRicochet": true
|
||||
```
|
||||
|
||||
## Quality Assurance
|
||||
|
||||
### Parameter Validation
|
||||
1. **Physical Consistency**: Ensure yield strength ≤ tensile strength
|
||||
2. **Unit Consistency**: Verify all units match the documentation
|
||||
3. **Range Checking**: Compare values against published material databases
|
||||
4. **Cross-Reference**: Validate against multiple independent sources
|
||||
|
||||
### Simulation Validation
|
||||
1. **Known Results**: Test against published ballistic data
|
||||
2. **Sensitivity Analysis**: Vary parameters to understand system response
|
||||
3. **Comparative Testing**: Compare results between different bullet/material combinations
|
||||
4. **Literature Comparison**: Validate results against peer-reviewed research
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
1. **Unrealistic Penetration**: Check density and hardness values
|
||||
2. **No Expansion**: Verify expansion velocity threshold vs. impact velocity
|
||||
3. **Excessive Ricochets**: Reduce ricochet probability multiplier
|
||||
4. **Performance Issues**: Reduce spalling fragment count and density
|
||||
|
||||
### Best Practices
|
||||
1. **Start Simple**: Begin with basic parameters, add complexity gradually
|
||||
2. **Document Sources**: Record where each value came from for traceability
|
||||
3. **Version Control**: Keep track of parameter changes and their effects
|
||||
4. **Peer Review**: Have other researchers validate your parameter choices
|
||||
|
||||
## Advanced Research Applications
|
||||
|
||||
### Multi-Material Studies
|
||||
For composite armor or layered materials:
|
||||
- Configure each layer separately
|
||||
- Account for interface effects
|
||||
- Consider cumulative energy absorption
|
||||
|
||||
### Dynamic Effects
|
||||
For high strain rate phenomena:
|
||||
- Use dynamic strength values (typically 1.5-3× static)
|
||||
- Account for temperature effects
|
||||
- Consider strain rate sensitivity
|
||||
|
||||
### Statistical Analysis
|
||||
For probabilistic studies:
|
||||
- Use parameter ranges rather than single values
|
||||
- Apply Monte Carlo methods
|
||||
- Document uncertainty and sensitivity
|
||||
|
||||
## Contact and Support
|
||||
|
||||
For research collaborations or technical questions:
|
||||
- Review the complete API documentation
|
||||
- Consult the troubleshooting guide
|
||||
- Consider experimental validation of critical parameters
|
||||
|
||||
This configuration system is designed to support serious ballistics research while maintaining computational efficiency. The self-documenting JSON format ensures that parameter choices are traceable and scientifically justified.
|
||||
@@ -0,0 +1,193 @@
|
||||
{
|
||||
"_description": "Ballistic Properties Configuration File",
|
||||
"_notes": "This file defines the physical and ballistic characteristics of a projectile. All measurements use imperial units (inches, grains, fps) as is standard in ballistics research. 1 grain = 0.0647989 grams.",
|
||||
"_example": "5.56x45mm NATO M193 Ball - Standard military rifle cartridge",
|
||||
|
||||
"GrainWeight": {
|
||||
"_description": "Mass of the projectile in grains (ballistics standard unit)",
|
||||
"_unit": "grains (gr)",
|
||||
"_conversion": "1 grain = 0.0647989 grams = 0.000142857 pounds",
|
||||
"_typical_range": "20-1000 grains depending on caliber",
|
||||
"_examples": {
|
||||
"22_LR": "40 grains",
|
||||
"9mm": "115-147 grains",
|
||||
"5.56mm": "55-77 grains",
|
||||
"7.62mm": "147-175 grains",
|
||||
"50_BMG": "647-750 grains"
|
||||
},
|
||||
"value": 55.0
|
||||
},
|
||||
|
||||
"DiameterInches": {
|
||||
"_description": "Bullet diameter measured across the widest point",
|
||||
"_unit": "inches",
|
||||
"_conversion": "1 inch = 25.4 millimeters",
|
||||
"_note": "This is the actual bullet diameter, not the cartridge designation",
|
||||
"_examples": {
|
||||
"22_caliber": "0.224 inches (5.56mm)",
|
||||
"30_caliber": "0.308 inches (7.62mm)",
|
||||
"9mm": "0.355 inches",
|
||||
"45_ACP": "0.452 inches",
|
||||
"50_BMG": "0.510 inches"
|
||||
},
|
||||
"value": 0.224
|
||||
},
|
||||
|
||||
"LengthInches": {
|
||||
"_description": "Overall length of the bullet from base to tip",
|
||||
"_unit": "inches",
|
||||
"_note": "Longer bullets generally have higher ballistic coefficients but require faster rifling twist rates",
|
||||
"_typical_range": "0.4-2.0 inches depending on caliber and design",
|
||||
"value": 0.825
|
||||
},
|
||||
|
||||
"BulletType": {
|
||||
"_description": "Construction and intended purpose of the bullet",
|
||||
"_options": {
|
||||
"0": "Full Metal Jacket (FMJ) - Lead core with copper/brass jacket, military standard",
|
||||
"1": "Hollow Point (HP) - Designed to expand on impact, hunting/self-defense",
|
||||
"2": "Soft Point (SP) - Exposed lead tip for controlled expansion, hunting",
|
||||
"3": "Armor Piercing (AP) - Hardened core for penetrating armor",
|
||||
"4": "Armor Piercing Incendiary (API) - AP with incendiary compound",
|
||||
"5": "Tracer - Contains pyrotechnic compound for visible trajectory",
|
||||
"6": "Match Grade - Precision manufactured for competitive shooting",
|
||||
"7": "Frangible - Designed to disintegrate on impact with hard surfaces",
|
||||
"8": "Lead Round Nose (LRN) - Basic lead bullet design",
|
||||
"9": "Wadcutter (WC) - Flat-nosed design for paper target cutting",
|
||||
"10": "Semi-Wadcutter (SWC) - Compromise between wadcutter and round nose",
|
||||
"11": "Custom - User-defined characteristics"
|
||||
},
|
||||
"value": 0
|
||||
},
|
||||
|
||||
"BulletMaterial": {
|
||||
"_description": "Primary material composition affecting hardness and penetration",
|
||||
"_options": {
|
||||
"0": "Lead - Soft, traditional material (BHN ~5-12)",
|
||||
"1": "Lead-Antimony - Hardened lead alloy (BHN ~12-18)",
|
||||
"2": "Copper - Pure copper construction (BHN ~35-45)",
|
||||
"3": "Copper Jacket - Lead core with copper jacket (most common)",
|
||||
"4": "Brass - Brass construction (BHN ~60-80)",
|
||||
"5": "Steel - Steel core or construction (BHN ~150-300)",
|
||||
"6": "Tungsten - Dense, hard material (BHN ~300-400)",
|
||||
"7": "Bismuth - Lead-free alternative (BHN ~7-12)",
|
||||
"8": "Zinc - Zinc alloy construction (BHN ~80-120)",
|
||||
"9": "Custom - User-defined material properties"
|
||||
},
|
||||
"_note": "BHN = Brinell Hardness Number",
|
||||
"value": 3
|
||||
},
|
||||
|
||||
"BallisticCoefficientG1": {
|
||||
"_description": "Aerodynamic efficiency compared to G1 standard projectile",
|
||||
"_explanation": "Higher values indicate better aerodynamic performance and less velocity loss over distance",
|
||||
"_unit": "dimensionless ratio",
|
||||
"_typical_range": "0.1-1.0+ (most bullets 0.2-0.7)",
|
||||
"_examples": {
|
||||
"poor_aerodynamics": "0.15-0.25 (round nose, flat base)",
|
||||
"average": "0.25-0.45 (typical spitzer bullets)",
|
||||
"good": "0.45-0.65 (boat tail, optimized design)",
|
||||
"excellent": "0.65+ (VLD, match bullets)"
|
||||
},
|
||||
"_reference": "G1 standard: 1 lb, 1 inch diameter, flat base bullet",
|
||||
"value": 0.151
|
||||
},
|
||||
|
||||
"BallisticCoefficientG7": {
|
||||
"_description": "Aerodynamic efficiency compared to G7 standard projectile",
|
||||
"_explanation": "More accurate for modern boat-tail spitzer bullets than G1",
|
||||
"_unit": "dimensionless ratio",
|
||||
"_note": "G7 model better represents modern bullet shapes, typically 0.5-0.7x the G1 value",
|
||||
"_reference": "G7 standard: boat-tail spitzer design",
|
||||
"value": 0.076
|
||||
},
|
||||
|
||||
"UseG7Model": {
|
||||
"_description": "Whether to use G7 or G1 ballistic coefficient model",
|
||||
"_explanation": "G7 is more accurate for modern pointed bullets, G1 is traditional standard",
|
||||
"_recommendation": "Use G7 for boat-tail spitzer bullets, G1 for round nose or flat base",
|
||||
"value": false
|
||||
},
|
||||
|
||||
"SectionalDensity": {
|
||||
"_description": "Ratio of bullet mass to cross-sectional area",
|
||||
"_formula": "SD = Weight(grains) / (7000 × Diameter²(inches))",
|
||||
"_unit": "dimensionless ratio",
|
||||
"_significance": "Higher SD indicates better penetration potential",
|
||||
"_typical_ranges": {
|
||||
"light": "0.15-0.20 (varmint bullets)",
|
||||
"medium": "0.20-0.25 (general purpose)",
|
||||
"heavy": "0.25-0.35 (hunting, long range)",
|
||||
"very_heavy": "0.35+ (dangerous game, extreme penetration)"
|
||||
},
|
||||
"_note": "Set to 0.0 for automatic calculation from weight and diameter",
|
||||
"value": 0.0
|
||||
},
|
||||
|
||||
"BulletHardness": {
|
||||
"_description": "Material hardness of the bullet",
|
||||
"_unit": "Brinell Hardness Number (HB or BHN)",
|
||||
"_measurement": "Standard 10mm steel ball, 3000kg load, 30 second duration",
|
||||
"_typical_values": {
|
||||
"pure_lead": "5-8 BHN",
|
||||
"wheel_weight_alloy": "12-15 BHN",
|
||||
"linotype_alloy": "22-25 BHN",
|
||||
"copper_plated": "8-12 BHN",
|
||||
"copper_jacket": "15-20 BHN (considers jacket)",
|
||||
"mild_steel_core": "150-200 BHN",
|
||||
"hardened_steel": "300-600 BHN"
|
||||
},
|
||||
"_penetration_effect": "Harder bullets penetrate better but may not expand",
|
||||
"value": 15.0
|
||||
},
|
||||
|
||||
"PenetrationEnergyThreshold": {
|
||||
"_description": "Minimum kinetic energy required for the bullet to penetrate materials",
|
||||
"_unit": "foot-pounds (ft-lbs)",
|
||||
"_conversion": "1 ft-lb = 1.35582 Joules",
|
||||
"_explanation": "Below this energy, bullet will not penetrate and may bounce off",
|
||||
"_typical_values": {
|
||||
"small_game": "10-25 ft-lbs",
|
||||
"medium_game": "25-80 ft-lbs",
|
||||
"large_game": "80-200 ft-lbs",
|
||||
"dangerous_game": "200+ ft-lbs",
|
||||
"armor_piercing": "500+ ft-lbs"
|
||||
},
|
||||
"_factors": "Depends on bullet construction, target material, and impact angle",
|
||||
"value": 58.0
|
||||
},
|
||||
|
||||
"ExpansionVelocityThreshold": {
|
||||
"_description": "Minimum impact velocity required for bullet expansion",
|
||||
"_unit": "feet per second (fps)",
|
||||
"_conversion": "1 fps = 0.3048 meters per second",
|
||||
"_explanation": "Below this velocity, expanding bullets (HP, SP) will not expand reliably",
|
||||
"_typical_values": {
|
||||
"handgun_bullets": "800-1200 fps",
|
||||
"rifle_bullets": "1600-2200 fps",
|
||||
"premium_hunting": "1400-1800 fps",
|
||||
"varmint_bullets": "2000-2800 fps"
|
||||
},
|
||||
"_note": "Only applies to expanding bullet types (HP, SP, etc.)",
|
||||
"value": 1800.0
|
||||
},
|
||||
|
||||
"MaxExpansionMultiplier": {
|
||||
"_description": "Maximum diameter increase when bullet expands",
|
||||
"_unit": "ratio (expanded diameter / original diameter)",
|
||||
"_explanation": "How much the bullet can expand from its original diameter",
|
||||
"_typical_values": {
|
||||
"controlled_expansion": "1.3-1.6x (premium hunting)",
|
||||
"moderate_expansion": "1.6-2.0x (standard hunting)",
|
||||
"maximum_expansion": "2.0-2.5x (self-defense)",
|
||||
"fragmenting": "2.5x+ (varmint bullets)"
|
||||
},
|
||||
"_examples": {
|
||||
"9mm_hollow_point": "1.5-1.8x (0.355\" to ~0.64\")",
|
||||
"30-06_hunting": "1.4-1.7x (0.308\" to ~0.52\")",
|
||||
"22-250_varmint": "2.0-3.0x (0.224\" to ~0.67\")"
|
||||
},
|
||||
"_note": "Only applies to expanding bullet types",
|
||||
"value": 1.5
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,525 @@
|
||||
{
|
||||
"_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
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user