{"id":27160256,"url":"https://github.com/neomat-prog/f1-simulator","last_synced_at":"2026-05-09T04:31:56.958Z","repository":{"id":286872149,"uuid":"962833148","full_name":"neomat-prog/f1-simulator","owner":"neomat-prog","description":"An overly complicated F1 race simulator","archived":false,"fork":false,"pushed_at":"2025-04-08T21:00:43.000Z","size":7657,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-04T21:41:05.465Z","etag":null,"topics":["f1","javascript","nodejs","npm"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/f1-sim","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/neomat-prog.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-04-08T18:35:47.000Z","updated_at":"2025-04-08T21:29:54.000Z","dependencies_parsed_at":"2025-04-10T03:02:22.357Z","dependency_job_id":null,"html_url":"https://github.com/neomat-prog/f1-simulator","commit_stats":null,"previous_names":["neomat-prog/f1-race-sim","neomat-prog/f1-simulator"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/neomat-prog/f1-simulator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neomat-prog%2Ff1-simulator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neomat-prog%2Ff1-simulator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neomat-prog%2Ff1-simulator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neomat-prog%2Ff1-simulator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/neomat-prog","download_url":"https://codeload.github.com/neomat-prog/f1-simulator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neomat-prog%2Ff1-simulator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32807179,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"online","status_checked_at":"2026-05-09T02:00:06.633Z","response_time":123,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["f1","javascript","nodejs","npm"],"created_at":"2025-04-08T23:40:48.635Z","updated_at":"2026-05-09T04:31:56.915Z","avatar_url":"https://github.com/neomat-prog.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"🏎️ F1 Simulator Package\nA complete Formula 1 racing simulation package with real-world data integration, dynamic race features, and realistic race results.\n\n📦 Installation\nbash\nCopy\nEdit\nnpm install f1-simulator\n🚀 Quick Start\nimport { F1Client, Race, Track } from 'f1-simulator';\n```\nasync function runSimulation() {\n  try {\n    const sessionKey = await F1Client.getSessionKey('Monza', 2023, 'Qualifying');\n    const driversData = await F1Client.getDrivers(sessionKey);\n\n    const track = new Track('Monza', 75, 95, 3); // name, minLapTime, maxLapTime, DRS zones\n\n    const race = new Race({\n      track,\n      drivers: driversData,\n      sessionKey,\n      laps: 53,\n      weather: 'dry' // Options: 'dry', 'wet', or 'dynamic'\n    });\n\n    await race.initialize();\n    const results = race.simulate();\n\n    console.log('\\nRace Results:');\n    results.forEach((driver, index) =\u003e {\n      const status = driver.retired ? 'DNF' : `${driver.time.toFixed(3)}s`;\n      console.log(`${index + 1}. ${driver.driver.padEnd(15)} ${status}`);\n    });\n  } catch (error) {\n    console.error('Simulation error:', error.message);\n  }\n}\n\nrunSimulation();\n```\n🧰 Features\n✅ Real F1 data integration\n\n🛞 Tire degradation modeling\n\n🚨 Safety car deployment probabilities\n\n🌀 DRS system simulation\n\n💥 Crash and mechanical failure mechanics\n\n⏱️ Realistic lap time performance calculations\n\n🌦️ Dynamic weather changes\n\n🧠 Pit strategy planning\n\n🛠️ Custom Simulation\nCustom Drivers and Teams\n```javascript\nconst redBull = new Team('Red Bull', 97);\nconst mercedes = new Team('Mercedes', 95);\n\nconst customDrivers = [\n  new Driver('Max Verstappen', redBull, 95, 1),\n  new Driver('Lewis Hamilton', mercedes, 93, 44)\n];\n```\nCustom Track\n```\nconst customTrack = new Track('Custom Circuit', 80, 110, 2);\nRun a Custom Race\n\nconst customRace = new Race({\n  track: customTrack,\n  drivers: customDrivers,\n  laps: 30,\n  weather: 'wet'\n});\n\ncustomRace.initialize().then(() =\u003e {\n  const results = customRace.simulate();\n  console.log('\\nCustom Race Results:');\n  results.forEach(r =\u003e console.log(r));\n});\n```\n⚙️ Advanced Configuration\n🌦️ Weather Simulation\n```\nconst race = new Race({\n  // ... other config\n  weather: 'dynamic',\n  weatherChanges: [\n    { lap: 10, newWeather: 'wet' },\n    { lap: 20, newWeather: 'dry' }\n  ]\n});\n```\n🛠️ Pit Strategy\n```\nconst strategies = {\n  'Max Verstappen': {\n    15: 'hard',\n    30: 'medium'\n  },\n  'Lewis Hamilton': {\n    10: 'soft',\n    25: 'medium'\n  }\n};\n```\n```\nconst race = new Race({\n  // ... other config\n  pitStrategies: strategies\n});\n```\n🚓 Safety Car Configuration\n```\nimport { SafetyCarSystem } from 'f1-simulator';\n\nSafetyCarSystem.probabilities = {\n  normal: 0.03,\n  wet: 0.20,\n  crash: 0.35\n};\n```\n🧾 Output Example\n```\nRace Results:\n1. Max Verstappen    3089.452s\n2. Lewis Hamilton    3092.781s\n3. Charles Leclerc   3095.112s\n4. Sergio Pérez      DNF\n5. Carlos Sainz      3101.334s\n```\n\nContributing:\n  I am very open for people to request commits, to my project. If you have any ideas that could be implemented or bugs squashed just send a pull request and I will be on my way to check it out!\n\n📚 API Documentation\nFor full API reference and advanced usage, see the API Docs.\nhttps://openf1.org/?javascript#introduction\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneomat-prog%2Ff1-simulator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fneomat-prog%2Ff1-simulator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneomat-prog%2Ff1-simulator/lists"}