{"id":17925017,"url":"https://github.com/zerowidth/jps-explained","last_synced_at":"2026-03-17T09:41:42.633Z","repository":{"id":7741981,"uuid":"9108896","full_name":"zerowidth/jps-explained","owner":"zerowidth","description":"Code for a \"Jump Point Search, Explained\" post on zerowidth.com","archived":false,"fork":false,"pushed_at":"2023-12-23T17:56:21.000Z","size":123,"stargazers_count":70,"open_issues_count":2,"forks_count":20,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-04T20:12:50.744Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://zerowidth.com/2013/05/05/jump-point-search-explained.html","language":"CoffeeScript","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/zerowidth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2013-03-29T23:58:14.000Z","updated_at":"2025-02-08T11:28:47.000Z","dependencies_parsed_at":"2023-12-23T19:03:56.173Z","dependency_job_id":"df313c38-eb99-4f73-babd-4601fb7b4bef","html_url":"https://github.com/zerowidth/jps-explained","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zerowidth/jps-explained","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerowidth%2Fjps-explained","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerowidth%2Fjps-explained/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerowidth%2Fjps-explained/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerowidth%2Fjps-explained/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zerowidth","download_url":"https://codeload.github.com/zerowidth/jps-explained/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerowidth%2Fjps-explained/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30620761,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-17T08:10:05.930Z","status":"ssl_error","status_checked_at":"2026-03-17T08:10:04.972Z","response_time":56,"last_error":"SSL_read: 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":[],"created_at":"2024-10-28T20:51:59.333Z","updated_at":"2026-03-17T09:41:42.600Z","avatar_url":"https://github.com/zerowidth.png","language":"CoffeeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Jump Point Search Explained\n\nThere here mess o' coffeescript is for a blog post on\n[zerowidth.com](http://zerowidth.com) explaining how JPS works. The\ncode ain't pretty, but I tried to make certain pieces reusable for both static\nand interactive diagrams.\n\n`index.html` contains draft versions of most of the diagrams I ended up using.\n\nI wouldn't suggest dropping this wholesale into your own javascript project, as\nthe search algorithm implementation was designed with visualization in mind, not\nefficiency. Also there's some pretty tight coupling between all the objects\nhere. However, I hope it can serve as a reference, especially the\n`JumpPointSuccessors` bit. For another take, this time in questionable clojure\ncode, see my [hansel project](https://github.com/zerowidth/hansel). If you need\na real javascript pathfinding library, see\n[PathFinding.js](https://github.com/qiao/PathFinding.js).\n\nThis code is symlinked into my jekyll blog (currently private) for inclusion in\nthe final post.\n\nTo run this thing:\n\n```sh\nscript/server\n```\n\nand open [http://localhost:3000](http://localhost:3000).\n\nReleased under the MIT license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzerowidth%2Fjps-explained","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzerowidth%2Fjps-explained","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzerowidth%2Fjps-explained/lists"}