Skip to content

v1.3.0

Latest

Choose a tag to compare

@n0m4official n0m4official released this 24 Aug 14:52
· 3 commits to master since this release
4bf8275

SpecterCS v1.3.0

Changes:

  • Enhanced PhysicalOpticsKernel for realistic RCS scaling and temperature-aware calculations.
  • Implemented CoupledSimulation to advance EM–thermal–fluid interactions in time steps.
  • Added ElectromagneticAbsorptionKernel to compute absorbed power and FacetThermalSolver for heat transfer analysis.
  • Introduced ExternalFlowModel for convection and air temperature modeling.
  • Updated RcsEngine and RcsMesh to support temperature-sensitive RCS calculations and thermal links.
  • Added ThermalMeshTopology for facet connectivity and SurfaceThermalMaterial for material thermal properties.
  • Enhanced RadarConfig with incident power flux for EM heating.
  • Updated UI to include controls and display for multiphysics simulation results.
  • General refactoring and cleanup for improved maintainability.
  • Bug Fixes (see fixes)

Fixes:

  • Rewrote FacetContribution to use a new exact planar-polygon phase integral.
  • Updated documentation to clarify units and physical meaning of scattering amplitude S.
  • Replaced TrianglePhaseIntegral with a Stokes'-theorem-based boundary integral.
  • Added broadside limit handling for constant-phase facets.
  • Replaced EdgeIntegral with EdgeTerm for better edge weighting and degenerate case handling.

Known Issues:

  • OBJ files still return inflated RCS values due to OBJ file limitations, recommended users only use STL files.
  • RCS values still show impossibly high values due to edge cases where the engine is unable to differentiate between what to and not to include (fix is planned for next release).

Planned additions:

  • Non-Linear, Spatially-Variant Surface Impedance ($Z_s$) Boundaries
  • Fluidic-Embedded Substrate Homogenization
  • High-G Dynamic Loading Deformable Mesh
  • Quantum Capacitance ($C_q$) Graphene Models.
  • Galinstan Oxidation Layer Modeling

Use:

  1. Unzip archive
  2. Enter produced folder
  3. Navigate to Echo1.Wpf.exe (DO NOT REMOVE FROM FOLDER)
  4. Run

Full Changelog: v1.2.2...v1.3.0

Guide

Version: v1.3.0
Application: SpecterCS — RCS Simulator

Important: SpecterCS is an educational and research visualization tool. Its results are not validated for engineering, safety-critical, operational, or defence decisions.

1. What SpecterCS does

SpecterCS estimates the monostatic radar cross section (RCS) of a 3D target mesh.

It provides:

  • Physical Optics (PO) surface-scattering calculations.
  • UTD/PTD-inspired edge-diffraction estimates.
  • Coherent total RCS reporting in dBsm and square metres.
  • Per-facet RCS heatmap visualization.
  • Frequency, azimuth, elevation, and polarization controls.
  • Full azimuth sweeps with CSV export.
  • Frequency sweeps with an on-screen plot.
  • Whole-model material assignment.
  • An experimental EM–thermal–fluid coupling step.

The CPU solver is the authoritative RCS path. GPU compute support exists in the project but is not the source of the RCS value shown in the application.

2. Requirements

  • Windows
  • .NET 9 SDK/runtime
  • DirectX 12-capable GPU is optional
  • A supported 3D model in .stl or .obj format

To run from source:

dotnet restore SpecterCS.sln
dotnet run --project Echo1_Wpf\SpecterCS_Wpf.csproj

3. Quick start

  1. Start SpecterCS.
  2. Select Load OBJ / STL…
  3. Choose a model.
  4. Confirm the model dimensions are expressed in metres.
  5. Adjust frequency, azimuth, elevation, and polarization.
  6. Read the RCS result and inspect the heatmap.

For the most reliable import, use a clean, watertight STL mesh.

4. Loading a model

Select Load OBJ / STL… in the Model panel.

After loading, the application displays:

  • Number of facets
  • Number of shared edges
  • Bounding-box diagonal in metres

Supported formats

Format Support Notes
STL Recommended Use a clean, manifold, watertight mesh.
OBJ Basic support Only vertices and faces are used. Texture coordinates, normals, material files, and most advanced OBJ features are ignored.

Mesh requirements

Use meshes that are:

  • Sized in metres.
  • Closed/watertight where possible.
  • Free of duplicate, zero-area, or severely overlapping triangles.
  • Consistently wound, with outward-facing normals.
  • Manifold, especially when using edge diffraction or the thermal solver.

Poor OBJ topology, inverted normals, non-manifold edges, or incorrect scale can produce misleading RCS values.

5. Navigating the 3D view

Control Action
Right-click + drag Rotate the camera
W / S Move forward / backward
A / D Move left / right
Q / E Move up / down
Hold Left Shift Move faster

6. Configuring the radar

Frequency

Set frequency with the Frequency (GHz) slider.

Available range:

1 GHz to 40 GHz

Preset buttons are provided for common bands:

Preset Frequency
L 1.3 GHz
S 3.0 GHz
C 5.5 GHz
X 10.0 GHz
Ku 16.0 GHz
Ka 35.0 GHz

Changing frequency recalculates the RCS.

Azimuth and elevation

  • Azimuth: −180° to +180°
  • Elevation: −90° to +90°

The radar direction is calculated from these angles. Moving either slider recalculates the RCS and heatmap.

Polarization

Setting Meaning
VV Vertical transmit / vertical receive
HH Horizontal transmit / horizontal receive
HV (cross) Cross-polarized mode

Cross-polarized behavior is currently approximate and should be treated as exploratory.

7. Reading the RCS result

The RCS Result panel displays:

Value Meaning
dBsm RCS relative to one square metre: 10 × log10(RCS in m²)
Linear radar cross section
PO only Surface-scattering contribution
Edge diffraction Edge-diffraction contribution

The total is a coherent EM result. It is not necessarily equal to a simple sum of the displayed component levels in dB.

Heatmap

The model is coloured by per-facet RCS contribution:

Dark blue → low contribution
Cyan/yellow → medium contribution
Red → high contribution

Use the Display panel to set the heatmap's minimum and maximum dBsm range.

The heatmap is useful for locating strong scattering regions, but it does not replace the coherent total RCS calculation.

8. Azimuth sweep

The Sweep panel supports manual and automated azimuth analysis.

Automatic sweep

  1. Set Sweep rate (°/s).
  2. Enable Auto-sweep azimuth.
  3. The azimuth changes continuously and RCS updates during the sweep.

Full sweep

Select Compute full sweep to compute:

0° to 359° azimuth
1° spacing

When complete, SpecterCS draws a polar plot in the Sweep panel.

Exporting an azimuth sweep

After a successful full sweep:

  1. Select Export CSV…
  2. Choose a destination and filename.

The CSV includes:

azimuth_deg,rcs_dbsm

It also includes metadata for frequency, elevation, polarization, model name, and facet count.

9. Frequency sweep

The Frequency sweep panel evaluates RCS over a selected frequency interval.

  1. Enter Start GHz.
  2. Enter Stop GHz.
  3. Select Run frequency sweep.

The application currently calculates 100 frequency samples and draws the result in the on-screen plot.

Frequency-sweep data is displayed in the application but is not exported by the current CSV export button.

10. Materials

The Materials panel applies one material to the entire loaded model.

Available choices:

Material Description
PEC (default) Perfect electric conductor
Carbon foam RAM 10 mm Carbon-loaded absorbing-material approximation
Ferrite tile 3 mm Ferrite-based absorbing-material approximation
Dielectric coating 5 mm Dielectric coating approximation
Aluminium 20 mm Lossy aluminium approximation
Titanium Alloy 20 mm Lossy titanium-alloy approximation

To apply a selection:

  1. Choose a material from the list.
  2. Select Apply to whole model.
  3. SpecterCS clears its RCS cache and recalculates the result.

The current interface does not provide region-selection controls, despite the panel text referring to a selected region.

11. Experimental EM–thermal–fluid simulation

SpecterCS includes an experimental single-step EM–thermal–fluid model.

The coupling sequence is:

EM absorption
→ facet heating
→ conduction, convection, and radiation
→ surrounding-air temperature update
→ temperature-dependent EM material response

Select Advance EM–thermal–fluid step to advance one configured timestep.

Important limitations

The current interface does not expose controls for:

  • Incident power flux
  • Ambient temperature
  • Air velocity
  • Pressure
  • Timestep
  • Number of coupling substeps
  • Surface thermal properties

By default, RadarConfig.IncidentPowerFluxWm2 is zero. This means normal RCS use does not heat the target, and selecting the multiphysics button will normally produce no meaningful thermal change.

For experimental developer use, configure the simulation in code before advancing it:

_radar.IncidentPowerFluxWm2 = 1000.0;

_multiphysics = new CoupledSimulation(
    _mesh,
    _engine,
    new FlowConditions
    {
        AmbientTemperatureK = 293.15,
        AirTemperatureK = 293.15,
        VelocityMps = 20.0,
        PressurePa = 101325.0,
        CharacteristicLengthM = 1.0
    },
    new CoupledSimulationConfig
    {
        TimeStepSeconds = 0.05,
        CouplingSubsteps = 1
    });

This is a reduced-order surface model, not a computational-fluid-dynamics solver.

12. Interpreting results responsibly

RCS depends strongly on:

  • Geometry scale
  • Mesh quality
  • Surface normal direction
  • Frequency
  • Viewing direction
  • Polarization
  • Material assumptions
  • Edge topology
  • Numerical approximation limits

Use the simulator to compare trends, visualize scattering regions, and explore parameter sensitivity.

Do not interpret a single result as a measured or certified RCS value.

13. Known limitations

  • Only monostatic RCS is implemented.
  • The CPU path is authoritative; GPU support is approximate and not used for the displayed final RCS.
  • Edge diffraction is UTD/PTD-inspired, not a complete validated diffraction solution.
  • Multiple scattering and multi-bounce effects are not modeled.
  • OBJ import is intentionally basic.
  • Mesh decimation is simple uniform facet sampling.
  • Material data is approximate and should not be treated as validated characterization data.
  • The heatmap uses per-facet values and is not a full field visualization.
  • Frequency-sweep export is not currently available.
  • The EM–thermal–fluid module is experimental and requires code configuration for meaningful heating.

14. Troubleshooting

The RCS value seems too high

Check the following:

  1. Confirm the mesh is scaled in metres.
  2. Use a watertight STL instead of an OBJ where possible.
  3. Verify outward-facing normals.
  4. Check for duplicate geometry or overlapping shells.
  5. Inspect the PO and edge-diffraction result breakdown.
  6. Reduce mesh complexity only after confirming the original mesh is clean.
  7. Treat values near diffraction boundaries with caution.

The model is not visible or is difficult to inspect

  • Use right-click drag to rotate.
  • Use W, A, S, D, Q, and E to move.
  • Load a mesh with a non-zero physical size.
  • Verify the model contains valid triangles.

The heatmap looks uniform

  • Change azimuth, elevation, frequency, or material.
  • Adjust Heatmap min and Heatmap max.
  • Confirm that an RCS calculation has completed.

The multiphysics step does not change temperature

Set a non-zero IncidentPowerFluxWm2 in code. The default is zero to prevent ordinary RCS calculations from being interpreted as heating simulations.