Skip to content
Back to skills

Orcawave Mesh Export Via Diffraction

ASecurity

'Sub-skill of orcaflex-visualization: OrcaWave Mesh Export via Diffraction

  • 17 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 9, 2026
ai-agentspythongoapi

Works with

  • api

Security analysis

A100/100

Scanned September 9, 2026

npx -y skills add vamseeachanta/workspace-hub --skill orcawave-mesh-export-via-diffraction --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Orcawave Mesh Export Via Diffraction?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Orcawave Mesh Export Via Diffraction
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vamseeachanta-orcawave-mesh-export-via-diffraction/badge)](https://www.skillsdirectory.com/skills/vamseeachanta-orcawave-mesh-export-via-diffraction)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: orcaflex-visualization-orcawave-mesh-export-via-diffraction
description: 'Sub-skill of orcaflex-visualization: OrcaWave Mesh Export via Diffraction
  (+4).'
version: 1.1.0
category: engineering
type: reference
scripts_exempt: true
---

# OrcaWave Mesh Export via Diffraction (+4)

## OrcaWave Mesh Export via Diffraction


`OrcFxAPI.Diffraction` exposes mesh export methods that output GDF geometry files.
These can be parsed and rendered programmatically (Plotly 3D mesh → Figure 30 style).

```python
import OrcFxAPI as ofx

d = ofx.Diffraction()
d.LoadData("model.owd")           # or d.LoadResults("model.owr")

# Body mesh (GDF format) — corresponds to red mesh in Figure 30

*See sub-skills for full details.*

## Programmatic Mesh Rendering (Plotly — Figure 30 style)


Since `SaveModelView` is not available, render mesh from GDF/panelGeometry data:

```python
import numpy as np
import plotly.graph_objects as go

def gdf_to_mesh3d(gdf_path, color="red"):
    """Parse WAMIT GDF file and return Plotly Mesh3d trace."""
    panels = []
    with open(gdf_path) as f:

*See sub-skills for full details.*

## OrcaFlex: Canonical SaveModelView Pattern


```python
import OrcFxAPI as ofx

def save_model_view(model: ofx.Model, filepath: str, **view_params):
    """Save OrcaFlex model screenshot. NOT available for OrcaWave."""
    vp = model.defaultViewParameters
    for k, v in view_params.items():
        if hasattr(vp, k):
            setattr(vp, k, v)
    model.SaveModelView(str(filepath), vp)

*See sub-skills for full details.*

## Existing Codebase Implementations


| Script / Module | Coverage | Notes |
|----------------|----------|-------|
| `scripts/capture_riser_views.py` | Minimal `SaveModelView` | OrcaFlex `.dat`; verified |
| `src/.../orcaflex/pipeline_schematic.py` | Multi-view YAML config | `OrcaFlexViewCapture` class |
| `src/.../orcaflex/opp_visualization.py` | Batch parallel (30 workers) | `save_all_views()` |
| `scripts/benchmark/qtf_postprocessing.py` | `panelGeometry` 3D scatter | OrcaWave body panels, used in benchmark report |
| `scripts/build_sme_report.py` | `img_to_base64()` | HTML embedding of BMP/PNG/JPG |

For HTML embedding use `img_to_base64()` from `scripts/build_sme_report.py` —
converts BMP/PNG/JPG to `data:image/...;base64` URI for inline `<img>` tags.

## panelGeometry Structured Array Schema


`d.panelGeometry` returns a numpy structured array (one record per panel):

```
dtype fields:
  objectId          int32       body object index
  objectName        str (U31)   body name e.g. 'test101 bottom mounted cylinder'
  vertices          float64 (4,3) four quad panel corners [x, y, z] metres
  centroid          float64 (3)  panel centroid [x, y, z]
  normal            float64 (3)  outward unit normal vector
  area              float64      panel area (m²)

*See sub-skills for full details.*

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.