SciML / SciML/NeuralOperators.jl

Implement Spherical Fourier Neural Operator (SFNO)

Open
#108 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Julia
Stars
41
Forks
15
Avg merge
13h 14m
Merged PRs (30d)
12

Description

Summary

Implement SFNO, which uses spherical harmonic transforms instead of FFT for learning operators on spherical domains.

Reference

  • Bonev et al., "Spherical Fourier Neural Operators: Learning Stable Dynamics on the Sphere," ICML 2023. arXiv:2306.03838

Description

SFNO replaces FFT with differentiable Spherical Harmonic Transforms (SHT) to properly handle data on spherical geometry without artifacts from equirectangular projection. It is the backbone of NVIDIA's FourCastNet weather forecasting model and is stable for year-long autoregressive rollouts.

This would require:

  • A new SphericalHarmonicTransform implementing the AbstractTransform interface in src/transform.jl
  • Integration with existing OperatorConv / OperatorKernel layers
  • A Julia SHT implementation or bindings (e.g., via FastTransforms.jl or similar)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in src/transform.jl by reading the AbstractTransform interface, then inspect the existing OperatorConv and OperatorKernel layers to understand their integration points. Evaluate a Julia Spherical Harmonic Transform implementation or bindings such as FastTransforms.jl. Done means adding SphericalHarmonicTransform support for spherical domains and integrating it with those layers.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
machine-learning
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.