| Crates.io | f1-nexus-wasm |
| lib.rs | f1-nexus-wasm |
| version | 1.0.0-alpha.2 |
| created_at | 2025-12-17 02:33:19.508861+00 |
| updated_at | 2025-12-17 02:33:19.508861+00 |
| description | F1 Nexus WASM modules for browser deployment |
| homepage | |
| repository | https://github.com/mrkingsleyobi/f1-nexus |
| max_upload_size | |
| id | 1989201 |
| size | 74,200 |
F1 Nexus WebAssembly bindings for browser-based Formula 1 race strategy optimization.
npm install @f1-nexus/wasm
yarn add @f1-nexus/wasm
pnpm add @f1-nexus/wasm
import init, { F1Nexus } from '@f1-nexus/wasm';
// Initialize WASM module
await init();
// Create F1 Nexus instance
const f1 = new F1Nexus();
// Optimize pit strategy
const strategy = f1.optimizeStrategy({
track: 'monaco',
totalLaps: 78,
currentLap: 1,
currentCompound: 'C3',
availableCompounds: ['C1', 'C2', 'C3'],
fuelRemaining: 110.0,
position: 3
});
console.log('Optimal Strategy:');
console.log(`Starting compound: ${strategy.startingCompound}`);
strategy.pitStops.forEach((stop, i) => {
console.log(`Stop ${i + 1}: Lap ${stop.lap} → ${stop.compound}`);
});
console.log(`Predicted race time: ${strategy.predictedRaceTime}s`);
import { useEffect, useState } from 'react';
import init, { F1Nexus } from '@f1-nexus/wasm';
function StrategyOptimizer() {
const [f1, setF1] = useState<F1Nexus | null>(null);
const [strategy, setStrategy] = useState(null);
useEffect(() => {
init().then(() => {
setF1(new F1Nexus());
});
}, []);
const optimize = () => {
if (!f1) return;
const result = f1.optimizeStrategy({
track: 'monaco',
totalLaps: 78,
availableCompounds: ['C1', 'C2', 'C3']
});
setStrategy(result);
};
return (
<div>
<button onClick={optimize}>Optimize Strategy</button>
{strategy && <StrategyDisplay strategy={strategy} />}
</div>
);
}
optimizeStrategy(params)Find optimal pit stop strategy using dynamic programming.
Parameters:
track: string - Circuit name (e.g., 'monaco', 'silverstone')totalLaps: number - Total race lapsavailableCompounds: string[] - Tire compounds availablecurrentLap?: number - Current lap (default: 1)fuelRemaining?: number - Fuel in kg (default: 110.0)Returns: { strategyId, startingCompound, pitStops[], predictedRaceTime, confidence }
simulateRace(params)Run Monte Carlo simulation to validate strategy.
Parameters: Strategy + simulation config Returns: Distribution of finish times, confidence intervals
predictTireLife(params)Predict tire degradation and optimal pit window.
Parameters: Tire data + track conditions Returns: Remaining laps, degradation rate
getCircuits()Get list of supported F1 circuits.
Returns: string[] - Circuit IDs
getTireCompounds()Get list of tire compound types.
Returns: string[] - Compound IDs (C0-C5, Intermediate, Wet)
version()Get package version.
Returns: string - Version number
See docs/EXAMPLES.md for:
Licensed under either of Apache License, Version 2.0 or MIT license at your option.