{"id":28578347,"url":"https://github.com/pascalcorpsman/fpc_cyclone-physics","last_synced_at":"2026-01-31T03:31:02.273Z","repository":{"id":295411290,"uuid":"988994367","full_name":"PascalCorpsman/FPC_cyclone-physics","owner":"PascalCorpsman","description":"The Physics engine that accompanies the book \"Game Physics Engine Design\" rewritten in FreePascal","archived":false,"fork":false,"pushed_at":"2025-11-04T14:33:25.000Z","size":355,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-04T16:09:19.572Z","etag":null,"topics":["3d","cyclone","freepascal","lazarus","library","physics-3d","physics-engine"],"latest_commit_sha":null,"homepage":"","language":"Pascal","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PascalCorpsman.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"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":"2025-05-23T11:48:48.000Z","updated_at":"2025-11-04T14:33:30.000Z","dependencies_parsed_at":"2025-05-25T12:29:48.274Z","dependency_job_id":"38399d86-7224-45d2-8dfd-eb29886fb27b","html_url":"https://github.com/PascalCorpsman/FPC_cyclone-physics","commit_stats":null,"previous_names":["pascalcorpsman/fpc_cyclone-physics"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/PascalCorpsman/FPC_cyclone-physics","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PascalCorpsman%2FFPC_cyclone-physics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PascalCorpsman%2FFPC_cyclone-physics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PascalCorpsman%2FFPC_cyclone-physics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PascalCorpsman%2FFPC_cyclone-physics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PascalCorpsman","download_url":"https://codeload.github.com/PascalCorpsman/FPC_cyclone-physics/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PascalCorpsman%2FFPC_cyclone-physics/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28928148,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-31T02:59:34.861Z","status":"ssl_error","status_checked_at":"2026-01-31T02:59:05.369Z","response_time":128,"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":["3d","cyclone","freepascal","lazarus","library","physics-3d","physics-engine"],"created_at":"2025-06-11T01:09:41.598Z","updated_at":"2026-01-31T03:31:02.268Z","avatar_url":"https://github.com/PascalCorpsman.png","language":"Pascal","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FPC cyclone-physics\r\n\r\n\u003e\r\n\u003e As i got stuck in writing my own 3D physics engine [CorP3D](https://github.com/PascalCorpsman/CorP3D) i decided to \"recode\" a existing one in order to learn enough to finish CorP3D.\r\n\u003e\r\n\r\nFPC cyclone-physics is a 3D physics game engine. It is developed in the book [Game Physics Engine Development, second edition](https://www.amazon.de/-/en/Game-Physics-Engine-Development-Commercial-Grade/dp/0123819768).\r\n\r\nIan Millington starts from scratch in his book, and so do i here in this repository. The plan is to read trough the book and implement step by step the whole engine in FreePascal (aka crossporting the C++ code given in the book).\r\n\r\nGoal is to have at the end a fully working 3D physics library (the same as in the book) and also port the [Demos](src/Demos).\r\n\r\nThere are eleven demo's available in total. The first seven demos are part of the particle engine and the last four for the rigid body physics.\r\n\r\n| Number | Page in Book | Name\r\n| ---    | ---          | ---\r\n| 001    |  63          | [ballistic](src/Demos/001_ballistic)\r\n| 002    |  66          | [fireworks](src/Demos/002_fireworks)\r\n| 003    | 151          | [bridge](src/Demos/003_bridge)\r\n| 004    | 152          | [platform](src/Demos/004_platform)\r\n| 005    | 153          | [blob](src/Demos/005_blob)\r\n| 006    | 241          | [flightsim](src/Demos/006_flightsim)\r\n| 007    | 247          | [sailboat](src/Demos/007_sailboat)\r\n| 008    |  65          | [bigballistic](src/Demos/008_bigballistic)\r\n| 009    | 441          | [ragdoll](src/Demos/009_ragdoll)\r\n| 010    | 446          | [fracture](src/Demos/010_fracture)\r\n| 011    | 457          | [explosion](src/Demos/011_explosion)\r\n\r\nThe orig source from the book is hosted [here](https://github.com/idmillington/cyclone-physics).\r\n\r\n### What is needed to compile and run the code ?\r\n\r\n1. clone this repository\r\n\r\nNow you have everything to compile the engine.\r\n\r\n### What is needed to compile and run the demos ?\r\n\r\n1. install LazOpenGLControl into the Lazarus IDE\r\n2. download [dglOpenGL.pas](https://github.com/SaschaWillems/dglOpenGL/blob/master/dglOpenGL.pas)\r\n3. download [uvectormath.pas](https://github.com/PascalCorpsman/Examples/blob/master/data_control/uvectormath.pas)\r\n4. download [uopengl_ascii_font.pas](https://github.com/PascalCorpsman/Examples/blob/master/OpenGL/uopengl_ascii_font.pas)\r\n5. download [uopengl_ascii_font.ressource](https://github.com/PascalCorpsman/Examples/blob/master/OpenGL/uopengl_ascii_font.ressource)\r\n6. download [uopengl_font_common.pas](https://github.com/PascalCorpsman/Examples/blob/master/OpenGL/uopengl_font_common.pas)\r\n\r\n### Progress\r\n- 2025.05.23: created repository, readme.md and license.md\r\n- 2025.05.25: demo 001 ballistic\r\n- 2025.05.26: demo 002 fireworks\r\n- 2025.10.26: demo 009 ragdoll\r\n- 2025.10.30: demo 011 explosion\r\n- 2025.10.31: demo 003 bridge\r\n- 2025.11.01: demo 004 platform\r\n- 2025.11.02: demo 005 blob\r\n- 2025.11.03: demo 006 flightsim\r\n- 2025.11.04: demo 007 sailboat\r\n- 2025.11.05: demo 008 bigballistic\r\n- 2025.11.06: demo 010 fracture\r\n\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpascalcorpsman%2Ffpc_cyclone-physics","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpascalcorpsman%2Ffpc_cyclone-physics","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpascalcorpsman%2Ffpc_cyclone-physics/lists"}