AgentStack
SKILL verified MIT Self-run

Swiftui Charts 3d

skill-ariadoss-superskills-swiftui-charts-3d · by ariadoss

Create 3D data visualizations using Swift Charts. Use when the user wants to create a 3D chart, asks about Chart3D or SurfacePlot, needs interactive drag-to-rotate, or wants height-based surface coloring. Requires iOS 26 / macOS 26+.

No reviews yet
0 installs
0 views
view→install

Install

$ agentstack add skill-ariadoss-superskills-swiftui-charts-3d

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README — it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-ariadoss-superskills-swiftui-charts-3d)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
today

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming — see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps — measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Swiftui Charts 3d? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

3D Charts with Swift Charts

Create 3D data visualizations using Chart3D and SurfacePlot. Covers math-driven surfaces, data-driven surfaces, interactive camera pose control, surface styling, and camera projection modes.

When This Skill Activates

Use this skill when the user:

  • Wants to create a 3D chart or 3D data visualization
  • Asks about Chart3D, SurfacePlot, or 3D surface plots
  • Needs to visualize a mathematical function as a 3D surface
  • Wants interactive drag-to-rotate on a 3D chart
  • Asks about 3D chart camera angles, pose, or projection
  • Needs to style 3D surfaces with gradients or height-based coloring
  • Wants to render multiple surfaces in a single 3D chart

API Availability

| API | Minimum Version | Notes | |-----|----------------|-------| | Chart3D | iOS 26 / macOS 26 | Main 3D chart container | | SurfacePlot | iOS 26 / macOS 26 | 3D surface mark | | Chart3DPose | iOS 26 / macOS 26 | Viewing angle control | | Chart3DCameraProjection | iOS 26 / macOS 26 | .automatic, .perspective, .orthographic | | Chart3DSurfaceStyle | iOS 26 / macOS 26 | .heightBased, .normalBased |

Quick Start

Math-Driven Surface

import SwiftUI
import Charts

struct WaveSurfaceView: View {
    var body: some View {
        Chart3D {
            SurfacePlot(
                x: "X",
                y: "Height",
                z: "Z",
                function: { x, z in
                    sin(x) * cos(z)
                }
            )
            .foregroundStyle(.blue)
        }
    }
}

Data-Driven Surface

struct DataPoint: Identifiable {
    let id = UUID()
    let x: Double
    let y: Double
    let z: Double
}

struct DataSurfaceView: View {
    let points: [DataPoint]

    var body: some View {
        Chart3D(points) { point in
            SurfacePlot(
                x: .value("X", point.x),
                y: .value("Height", point.y),
                z: .value("Z", point.z)
            )
        }
    }
}

Interactive Rotation

struct InteractiveChartView: View {
    @State private var pose = Chart3DPose.default

    var body: some View {
        Chart3D {
            SurfacePlot(x: "X", y: "Height", z: "Z", function: { x, z in sin(x) * cos(z) })
                .foregroundStyle(.blue)
        }
        .chart3DPose($pose)
    }
}

Surface Styling Patterns

Height-Based Surface Style

SurfacePlot(x: "X", y: "Y", z: "Z", function: { x, z in sin(x) * cos(z) })
    .foregroundStyle(
        Chart3DSurfaceStyle.heightBased(
            Gradient(colors: [.blue, .cyan, .green, .yellow, .red]),
            yRange: -1...1
        )
    )

Normal-Based Surface Style

SurfacePlot(x: "X", y: "Y", z: "Z", function: { x, z in sin(x) * cos(z) })
    .foregroundStyle(Chart3DSurfaceStyle.normalBased)

Surface Roughness

SurfacePlot(...)
    .foregroundStyle(.blue)
    .roughness(0.3)  // 0 = reflective, 1 = matte

Interactive Pose Control

Preset Poses

.chart3DPose(.default)   // Standard 3/4 angle
.chart3DPose(.front)     // Viewing from front
.chart3DPose(.top)       // Top-down view

Custom Pose

.chart3DPose(
    Chart3DPose(azimuth: .degrees(45), inclination: .degrees(30))
)

Read-Only vs Interactive

// ✅ Read-only — user cannot rotate the chart
.chart3DPose(Chart3DPose.front)

// ✅ Interactive — user can drag to rotate
@State private var pose = Chart3DPose.default
.chart3DPose($pose)

Camera Projection

.chart3DCameraProjection(.perspective)   // Objects farther away appear smaller (visual appeal)
.chart3DCameraProjection(.orthographic)  // No perspective distortion (scientific precision)
.chart3DCameraProjection(.automatic)     // System decides

Top Mistakes

| # | Mistake | Fix | |---|---------|-----| | 1 | Forgetting to import Charts | Both SwiftUI and Charts imports are required | | 2 | Using .chart3DPose(.default) and expecting drag-to-rotate | Use a @State binding: .chart3DPose($pose) | | 3 | Setting yRange that does not cover actual function output | Match yRange to actual min/max of your function | | 4 | Applying .roughness() without .foregroundStyle() | Set a foreground style first | | 5 | Using orthographic projection for presentation contexts | Prefer .perspective for visual appeal |

Review Checklist

  • [ ] Both import SwiftUI and import Charts are present
  • [ ] Deployment target is iOS 26 / macOS 26 or later
  • [ ] Chart3D wraps all SurfacePlot content
  • [ ] Axis labels are descriptive and meaningful
  • [ ] yRange in .heightBased() matches actual output range
  • [ ] Pose is @State binding if drag-to-rotate is intended
  • [ ] Camera projection set appropriately

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.