{"id":13995935,"url":"https://github.com/herbie-fp/odyssey","last_synced_at":"2026-01-19T14:30:35.686Z","repository":{"id":74154556,"uuid":"524231900","full_name":"herbie-fp/odyssey","owner":"herbie-fp","description":"A platform for exploring floating-point expressions :boat:","archived":false,"fork":false,"pushed_at":"2025-09-10T00:14:06.000Z","size":61894,"stargazers_count":23,"open_issues_count":30,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-09-10T02:58:00.323Z","etag":null,"topics":["floating-point","interfaces","plugin-system"],"latest_commit_sha":null,"homepage":"https://herbie-fp.github.io/odyssey/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/herbie-fp.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-08-12T21:44:57.000Z","updated_at":"2025-09-10T00:14:09.000Z","dependencies_parsed_at":"2023-10-26T05:22:42.586Z","dependency_job_id":"b7c069eb-067d-4b8f-8488-efce74cd4b2f","html_url":"https://github.com/herbie-fp/odyssey","commit_stats":null,"previous_names":["herbie-fp/odyssey"],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/herbie-fp/odyssey","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/herbie-fp%2Fodyssey","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/herbie-fp%2Fodyssey/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/herbie-fp%2Fodyssey/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/herbie-fp%2Fodyssey/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/herbie-fp","download_url":"https://codeload.github.com/herbie-fp/odyssey/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/herbie-fp%2Fodyssey/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28571769,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T12:50:50.164Z","status":"ssl_error","status_checked_at":"2026-01-19T12:50:42.704Z","response_time":67,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["floating-point","interfaces","plugin-system"],"created_at":"2024-08-09T14:03:40.561Z","updated_at":"2026-01-19T14:30:35.674Z","avatar_url":"https://github.com/herbie-fp.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# Odyssey: An Interactive Numerics Workbench \n#### [[Video tutorial (8.5 min)]](https://youtu.be/4YPvNDdoYjY) [[Setup]](#running-odyssey)\n\nOdyssey is a tool for interactively rewriting numerical expressions to reduce floating-point error.\n\n\u003cimg src=\"doc/images/New_Homepage.gif\" width=600/\u003e\n\u003cbr\u003e\n\u003cbr\u003e\n\n**Before using Odyssey, please see [Running Odyssey](#running-odyssey) below to install dependencies.**\n\n## Table of Contents\n- [Features](#features)\n- [Running Odyssey](#running-odyssey)\n- [Submitting Feedback and Getting Help](#submitting-feedback-and-getting-help)\n- [Release Notes](#release-notes)\n- [For Developers](#for-developers)\n\n## Features\n\nOdyssey displays the *local error* of expressions. Local error shows how different subexpressions contribute to the total error for an input.\n\n\u003cimg src=\"doc/images/New_Local-Error.gif\" width=600/\u003e\n\u003cbr\u003e\n\u003cbr\u003e\n\nOdyssey generates rewriting suggestions with the state-of-the-art [Herbie](https://herbie.uwplse.org/demo/) floating-point expression rewriting tool.\n\n\u003cimg src=\"doc/images/New_Herbie.gif\" width=600/\u003e\n\u003cbr\u003e\n\u003cbr\u003e\n\nDerivations of Herbie's rewrites are also available.\n\n\u003cimg src=\"doc/images/New_Derivation.gif\" width=600/\u003e\n\u003cbr\u003e\n\u003cbr\u003e\n\nThe sample range of the expression can be adjusted to fit your use case.\n\n\u003c!-- TODO gif of Odyssey showing adjusting the sample range for sqrt(x + 1) - sqrt(x) --\u003e\n\u003cimg src=\"doc/images/New_Resample.gif\" width=600/\u003e\n\u003cbr\u003e\n\u003cbr\u003e\n\nA sharable link that contains Odyssey's state can be generated. \n\n\u003cimg src=\"doc/images/New_Gist.gif\" width=600/\u003e\n\u003cbr\u003e\n\u003cbr\u003e\n\nA full walkthrough of Odyssey is available in the [video tutorial](https://youtu.be/jsjGuM2KK50). \n\nIf you have any questions about features, please [open an issue](https://github.com/herbie-fp/odyssey/issues/new) on Github.\n\n## Running Odyssey\n\nOdyssey runs as a VSCode extension. You can install it from the VSCode Marketplace [here](https://marketplace.visualstudio.com/items?itemName=herbie-fp.odyssey-fp), but first follow the instructions below to install dependencies. \n\n### Dependencies\nOdyssey uses a [Herbie](https://herbie.uwplse.org) server to analyze expressions and currently requires you to bring your own Herbie instance. After following the [Herbie installation instructions](https://herbie.uwplse.org/doc/latest/installing.html), you can run a Herbie server with\n```bash\n$ herbie web --port 8000 --quiet\n# Response should look like:\nHerbie 2.0 with seed 552322303\nFind help on https://herbie.uwplse.org/, exit with Ctrl-C\nYour Web application is running at http://localhost:8000.\nStop this program at any time to terminate the Web Server.\n```\n\n### Running the VSCode extension\n\nAfter starting the Herbie server, run Odyssey from the VSCode command palette by clicking on VSCode and using **Ctrl/Command-Shift-P \u003e Odyssey: Herbie.**\n\nThe server status shown in Odyssey should have the text \"Connected.\"\n\nIf the server status is red with the text \"No Server\", Odyssey can't connect to the Herbie server.\n\nIf needed, you can adjust the server address where Odyssey looks for Herbie by clicking on the server status. Make sure that the port Odyssey is connecting to is the same one Herbie is being hosted on.\n\n### (Alternative) Running as a standalone web application\n\nOdyssey can also run as a standalone web application.\n\nFirst, you'll need to install node from https://nodejs.org/en/download/.\n\nNext, clone this repo and build the application:\n```bash\n$ git clone https://github.com/herbie-fp/odyssey\n$ cd odyssey\n$ npm install\n$ npm run compile\n```\n\nThen, after starting the Herbie server, run an HTTP server to serve the `index.html` file:\n```bash\n$ npx serve -p 3000\n```\n\n# Submitting Feedback and Getting Help\nPlease submit any feedback or bug reports by [opening an issue on this repo](https://github.com/herbie-fp/odyssey/issues/new).\n\n# Release Notes\n\n### 1.0.0\n* First public release\n\n\u003c!-- TODO add more release notes --\u003e\n\n### 0.4.0\n\n* Rename repo + extension\n* Still unofficial; expecting to release 1.0 at the beginning of August\n\n### 0.1.0\n\nFirst major post-study 1 version\n\n# For Developers\n\n## Setting up a development environment\n```bash\n$ npm install\n# Then use command/control+shift+B to start the auto-compile task\n# Each time compilation finishes, you should see a message like \"webpack 5.82.1 compiled with 1 warning in 31769 ms\"\n```\n\n### Testing the extension\nUse the \"Run and Debug\" tab to start an instance of VSCode with the most recent code.\n\nYou can see changes to the frontend (`webview/index.ts`) by simply refreshing the webview, but **changes to the host (`extension.ts`) will only show if the debugger is restarted.**\n\nTo run the test suite, see the documentation in `doc/test_suite.md`.\n\n### Publishing the extension:\n\nGet publication key from @elmisback, then:\n\n```bash\n# update \"version\" in package.json and commit, then\n$ npm run publish\n```\n\n\u003c!-- ## Extension Settings\n\nInclude if your extension adds any VS Code settings through the `contributes.configuration` extension point.\n\nFor example:\n\nThis extension contributes the following settings:\n\n* `myExtension.enable`: enable/disable this extension\n* `myExtension.thing`: set to `blah` to do something --\u003e\n\n-----------------------------------------------------------------------------------------------------------\n\u003c!-- ## Following extension guidelines\n\nEnsure that you've read through the extensions guidelines and follow the best practices for creating your extension.\n\n* [Extension Guidelines](https://code.visualstudio.com/api/references/extension-guidelines)\n\n--\u003e\n\n## Acknowledgements\n\nThis material is based upon work supported by the National Science Foundation under Grant No. CNS-2346394.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fherbie-fp%2Fodyssey","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fherbie-fp%2Fodyssey","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fherbie-fp%2Fodyssey/lists"}