● ---
Inspiration
I trade options. I kept buying calls before earnings — the stock would go up exactly like I predicted, and Id still lose money. Over and over. I couldn't figure out why.
The answer is volatility crush. Before earnings, implied volatility spikes as uncertainty peaks. The moment
results drop, IV collapses instantly — destroying option value faster than the stock move creates it. No consumer tool showed me this before I traded.
I built Volana so I could finally see it.
What Volana Does
Volana is a neural volatility surface simulator with an AI voice agent called Sigma.
Train — Hit train. A physics-informed neural network learns the entire SPY implied volatility surface from live
market data. Zero parametric assumptions. Arbitrage-free by construction.
Draw — Sketch any price scenario on a TradingView-style canvas, or tell Sigma to draw it by voice. Set an
earnings date. Watch your P&L at every point along the path — the vol crush cliff appears automatically, even
when the stock goes up.
Talk — Ask Sigma anything. "When do I break even?" "Switch to puts." "Draw a V-recovery to 700." Natural voice
conversation powered by ElevenLabs and Gemini with 12 tool-calling functions.
How We Built It
The Neural Surface
The core is a physics-informed neural implicit field — same family as NeRF and Gaussian Splatting, brought from
computer graphics into quantitative finance.
- Model: 4-layer MLP, 50,434 parameters, SiLU activations, Softplus output guaranteeing $\sigma > 0$
Loss function with three terms trained simultaneously:
Data: 843 live OTM options from Yahoo Finance, bid-ask midpoint pricing, IQR outlier removal
Result: Beats SABR — the 30-year industry standard — by 43.3% on 144 held-out test points
The Voice Agent
Sigma connects ElevenLabs Conversational AI (WebSocket, 75ms TTS) with Gemini 2.5 Flash for intent parsing. It
has 12 client-side tools with expects_response: true for data queries:
- Price any option from the neural surface
- Analyze the drawn path (breakeven, profit/loss zones, max gain/loss)
- Draw custom scenarios by voice command
- Change strike, expiry, call/put, earnings day
- Query training status and live market data
The Frontend
- 3D surface: Three.js heightfield mesh with raycaster hover tooltips
- Drawing canvas: HTML5 Canvas 2D with cardinal spline interpolation, earnings line, weekend shading, real-time
P&L
- Draggable chat panel with thinking indicators and tool-call feedback
Stack
PyTorch + autograd PINN · FastAPI + SSE streaming · Three.js · Canvas 2D · ElevenLabs · Gemini · Digital Ocean
App Platform · volana.tech
Challenges
ElevenLabs tool results weren't working. The voice agent would call tools correctly but say "I'm calculating..."
forever. After hours of debugging, we found the root cause: client tools default to expects_response: false
(fire-and-forget). Adding expects_response: true to data-fetching tools fixed it — the agent finally waited for
results and spoke them back.
Breakeven detection was wrong. The P&L starts at $0 at entry, so any tiny fluctuation triggered a false breakeven at day 0.4. We rewrote it to track profit/loss zones with interpolated zero-crossings, only detecting breakeven after the position has actually gone negative.
CPU training on Digital Ocean. Our deployed instance has no GPU. We tuned early stopping (patience=25,
good-enough MSE threshold) so training converges in ~2 minutes on CPU instead of running for 10+ minutes.
What We Learned
Physics-informed neural networks aren't just for fluid dynamics — the no-arbitrage conditions in finance are
mathematically identical to conservation laws in physics. The same autograd trick that solves PDEs enforces
financial constraints.
The hardest part wasn't the neural network. It was making the AI agent actually use its tool results instead of
hallucinating answers.
What's Next
Multi-leg strategies (straddles, spreads, condors). Historical surface playback. Mobile interface. Portfolio
mode. The goal: every retail trader sees what their broker won't show them — before they click buy.
Built With
- canvas
- digitalocean
- elevenlabs
- fastapi
- gemini-api
- javascript
- numpy
- pinn
- python
- pytorch
- scipy
- three.js
- yahoo-finance-api
Log in or sign up for Devpost to join the conversation.