Skip to content

Package Layers

This is the verified mapping from pipeline stage to package, replacing an earlier stub whose "Solver" row was inaccurate (it pointed at pinneapple_simulation.numerical_solvers, which is a classical-solver package, not the training-policy layer described in Solver).

Core pipeline

Layer Package Notes
Problem definition pinneapple_physics.pde_environment ProblemSpec, ProblemBuilder, presets, BC/IC types
Geometry + sampling pinneapple_design.geometry SDF/CSG, PhysicsDomain2D/3D, mesh, MeshCollocator
Data container pinneapple_data PhysicalSample, collation, collocation, active learning
Model architectures pinneapple_neural.architectures BaseModel subclasses + ModelRegistry
Physics / residuals + constraints pinneapple_physics.pinn_solver, pinneapple_physics.symbolic_pde compile_problem, autograd ops, DoMINO; SymPy-based residuals
Solver — training policy pinneapple_neural.trainer Trainer, TwoPhaseTrainer, TimeMarchingTrainer, CausalPINNTrainer, DDPPINNTrainer, loss-weight balancers
Execution backend pinneapple_tools.compute_backends PyTorch (default) / JAX abstraction
Benchmarking pinneapple_tools.benchmark_suite Arena, PINNArenaBenchmark, transfer/meta benchmark pipelines
Research pipeline pinneapple_tools.hpo_experiments literature discovery, knowledge base, reproduction
Structured storage pinneapple_pdb Earth-observation-backed dataset builder + named-benchmark catalog

Classical numerical solvers (pinneapple_simulation.numerical_solvers — FEM/FDM/FVM/spectral/SPH/LBM, plus OpenFOAM/FEniCS bridges) are a distinct capability from the training-policy "Solver": they generate reference/ comparison data (or couple to external tools), rather than optimizing a neural network's weights. A pinneapple_neural.trainer.Trainer can train against data a numerical_solvers run produced, but the two are not the same layer.

Extension packages

These sit on top of the core pipeline, consuming its outputs rather than being required by it:

Package Adds
pinneapple_analysis Uncertainty quantification, physics validation, inverse problems
pinneapple_adaptation Transfer learning and meta-learning across PDE families
pinneapple_simulation Classical numerical solvers, particle dynamics, external-solver bridges
pinneapple_systems Time series, co-simulation, digital twins
pinneapple_design.design_optimizer Adjoint/Pareto/Bayesian/evolutionary shape optimization
pinneapple_problemdesign Natural-language-to-PDE problem design agent
pinneapple_arena YAML/JSON-driven multi-model benchmark runner and leaderboard
pinneapple_quantum Quantum and quantum-inspired PINNs
pinneapple_worldmodel Generalist physics foundation models
pinneapple_hub Model hub client (push_to_hub/from_pretrained)
pinneapple_registry Local, self-hosted artifact/experiment registry
pinneapple_llm LLM-assisted pipeline drafting, gated by PhysicsGuardrail
pinneapple_blender Field/trajectory export to .ply and Blender scene rendering
pinneapple_perception Extracting physics observations from images/video/audio
pinneapple_app FastAPI + frontend web app for browser-based benchmarking

Compatibility shims

pinneapple_models, pinneapple_solvers, and pinneapple_train are re-export shims (for pinneapple_neural.architectures, pinneapple_simulation.numerical_solvers, and pinneapple_neural.trainer respectively) kept only so older import paths keep working.