Skip to content
commit-766c8d6756a1

Interactive surface 3D

Sampled mathematical surfaces for seeing peaks, valleys, and overall shape across two inputs.

Purpose
Explore a sampled surface over two inputs and one output.
Use when
Overall shape, peaks, and valleys matter more than a single exact sample.
Avoid when
Users need to compare individual values or cannot use a three-dimensional view.
Equivalent data
Formula, domains, sample count, and downloadable CSV expose the full dataset.

Exact surface data

Formula: y = i / 60, x = j / 60, z = sin(x × π) × sin(y × π), with i and j from -60 through 59

14400 ordered points. X domain [-1, 0.9833333333333333]; Y domain [-1, 0.9833333333333333]; Z domain [-1, 1].

Download all exact points as CSV

Exact surface data

Formula: y = i / 10, x = j / 10, z = sin(x² + y²) × x / π, with i and j from -30 through 29

3600 ordered points. X domain [-3, 2.9]; Y domain [-3, 2.9]; Z domain [-0.9437987534484451, 0.954325476238276].

Download all exact points as CSV
Usage Example
@interactive.Surface3D(interactive.Surface3DConfig{
  Label: "Mathematical surface",
  Series: []interactive.Surface3DSeries{{
    Name: "surface",
    Points: []interactive.Point3D{{X: -1, Y: -1, Z: 0}, {X: 0, Y: -1, Z: 0}},
  }},
  VisualRange: &interactive.Surface3DVisualRange{
    Min: -3, Max: 3, Calculable: interactive.Bool(true),
    Palette: interactive.Surface3DPaletteColdToWarm,
  },
  DataSummary: interactive.Surface3DDataSummary{
    Formula: "z = sin(x × π) × sin(y × π)",
  },
})

Surface variants

Compare the examples as distinct sampled surfaces. Their formulas and domains identify what changes.

Go API

v0.0.1

The examples above cover behavior and composition. pkg.go.dev is the canonical reference for exported types, functions, methods, and Go documentation.

github.com/araihu/goshtoso-charts/components/interactive

Enabled, disabled, hidden, and omitted wrapper behavior, controls, export, and client transitions are shared by every chart. Review chart controls, then compare static/vector and interactive capabilities.

Open v0.0.1 API