{"id":13528785,"url":"https://github.com/ceramic-engine/ceramic","last_synced_at":"2025-04-01T14:33:08.352Z","repository":{"id":39091801,"uuid":"84566136","full_name":"ceramic-engine/ceramic","owner":"ceramic-engine","description":"Cross-platform 2D framework written in Haxe that can export natively to desktop (windows, mac, linux), mobile (ios, android), web (js + webgl) and to unity projects","archived":false,"fork":false,"pushed_at":"2025-02-07T21:45:36.000Z","size":24928,"stargazers_count":274,"open_issues_count":12,"forks_count":24,"subscribers_count":20,"default_branch":"master","last_synced_at":"2025-02-07T22:32:26.715Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Haxe","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/ceramic-engine.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-03-10T14:08:29.000Z","updated_at":"2025-02-07T21:45:43.000Z","dependencies_parsed_at":"2023-11-23T01:25:31.954Z","dependency_job_id":"44da6005-71b7-459c-8616-4e8325ae015a","html_url":"https://github.com/ceramic-engine/ceramic","commit_stats":null,"previous_names":[],"tags_count":72,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ceramic-engine%2Fceramic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ceramic-engine%2Fceramic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ceramic-engine%2Fceramic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ceramic-engine%2Fceramic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ceramic-engine","download_url":"https://codeload.github.com/ceramic-engine/ceramic/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246655261,"owners_count":20812608,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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-08-01T07:00:24.646Z","updated_at":"2025-04-01T14:33:03.330Z","avatar_url":"https://github.com/ceramic-engine.png","language":"Haxe","readme":"# Ceramic\n\n\u003cimg alt=\"Ceramic Logo\" align=\"left\" src=\"/tools/tpl/project/empty/assets/ceramic.png\" height=\"130\" /\u003e\n\n**Ceramic** is a cross-platform 2D framework written in Haxe that can export natively to:\n\n- **Desktop** (windows, mac, linux)\n- **Mobile** (ios, android), web (js + webgl)\n- **Unity** projects\n\n## Examples and Documentation\n\nhttps://ceramic-engine.com\n\n## Credits\n\nCeramic was created by **[Jérémy Faivre](https://github.com/jeremyfa)**, as well as multiple libraries used internally, but is also possible thanks to the following works:\n\n* **[Luxe Engine (alpha)](https://luxeengine.com/alpha/) by Sven Bergström** which was used as a transitional backend before `clay` backend was ready. Some snippets of Ceramic still directly come from `luxe`.\n\n* **[HaxeFlixel's FlxColor class](https://github.com/HaxeFlixel/flixel/blob/a59545015a65a42b8f24b08262ac80de020deb37/flixel/util/FlxColor.hx) by Joe Williamson** which was ported into  to `ceramic.Color` and `ceramic.AlphaColor` classes.\n\n* **[OpenFL](https://github.com/openfl/openfl/blob/0b84012052fc8f6ab2e211c93769c99ad331beb9/openfl/geom/Matrix.hx) by Joshua Granick** and **[PixiJS](https://github.com/pixijs/pixi.js/blob/85aaea595f77bf0511886c499fc2733d4f5ba524/src/core/math/Matrix.js) by Mathew Groves** to implement `ceramic.Transform` class.\n\n* **[Haxe](https://haxe.org/) by Nicolas Cannasse**, maintained by the **Haxe Foundation**, which is a fantastic cross-platform toolkit and programming language making it much easier to create a portable engine.\n\n* **[Node.js](https://nodejs.org/) and its huge amount of community supported modules**, helping a lot to create feature-complete and cross-platform command line tools.\n\n* **[Janicek Core Haxe](https://github.com/rjanicek/janicek-core-haxe) by Richard Janicek**, for some borrowed code for `ceramic.Utils.hashCode()`.\n\n* **[Slugify](https://github.com/simov/slugify) by Simov**, and **[Slug haxelib port](https://lib.haxe.org/p/slug)** to provide `ceramic.Slug`.\n\n* **[HaxeFlixel's FlxEmitter class](https://github.com/HaxeFlixel/flixel/blob/02e2d18158761d0d508a06126daef2487aa7373c/flixel/effects/particles/FlxEmitter.hx)** used as a starting point to implement `ceramic.Particles` and `ceramic.ParticleEmitter`.\n\n* **[Optimised HashMaps](https://github.com/mikvor/hashmapTest) by Mikhail Vorontsov** to implement `ceramic.IntIntMap` and related on static targets.\n\n* **[Some crash logging snippets](https://github.com/larsiusprime/crashdumper/blob/24e28e8fd664de922bd480502efe596665d905b8/crashdumper/CrashDumper.hx) by Lars Doucet** to handle errors with `ceramic.Errors`.\n\n* **[Cardinal Spline JS](https://github.com/gdenisov/cardinal-spline-js) by Gleb Denisov**, used to create `ceramic.CardinalSpline`.\n\n* **[Nuclear Blaze's GameBase Camera](https://github.com/deepnight/ld48-NuclearBlaze/blob/master/src/game/gm/Camera.hx) by Sébastien Bénard**, used as a model to create `ceramic.Camera`.\n\n* **[Bezier Easing](https://github.com/gre/bezier-easing) by Gaëtan Renaudeau**, used to create `ceramic.BezierEasing`.\n\n* **[Some GLSL shader code](https://github.com/kiwipxl/GLSL-shaders) by Richman Steward**.\n\n* **[Some browser mess handling](https://github.com/goldfire/howler.js/blob/143ae442386c7b42d91a007d0b1f1695528abe64/src/howler.core.js#L245-L293) from Holwer.js** to help implement Ceramic audio backend for web.\n\n* **[Heaps Aseprite](https://github.com/AustinEast/heaps-aseprite) by Austin East**, from which several snippets were ported for make Ceramic `ase` format parsing and rendering.\n\n* **[Aseprite Blend Functions](https://github.com/aseprite/aseprite/blob/23557a190b4f5ab46c9b3ddb19146a7dcfb9dd82/src/doc/blend_funcs.cpp) by Igara Studio S.A. and David Capello**, which were ported to Haxe in order to implement ase frame blending at runtime in Ceramic.\n\n* **[Extrude Polyline](https://github.com/mattdesl/extrude-polyline) by Matt DesLauriers**, via Haxe port used in Ceramic to draw lines.\n\n* **[Earcut](https://github.com/mapbox/earcut) from Mapbox**, via Haxe port to triangulate shapes.\n\n* **[Haxe Format Tiled](https://github.com/Yanrishatum/haxe-format-tiled) by Pavel Alexandrov** to parse Tiled Map Editor's TMX format.\n\n* **[Akifox Async HTTP](https://github.com/yupswing/akifox-asynchttp) by Simone Cingano**, used to implement HTTP backend on native targets.\n\n* **[Nape Physics](https://joecreates.github.io/napephys) by Luca Deltodesco and contributors**.\n\n* **[HSLuv](https://github.com/hsluv/hsluv)** to provide additional color manipulation helpers to `ceramic.Color` and `ceramic.AlphaColor`.\n\n* **[Dear ImGui](https://github.com/ocornut/imgui) by Omar Cornut**, via **[Haxe bindings](https://github.com/jeremyfa/imgui-hx) initially created by Aidan Lee**.\n\n* **[Gif Capture](https://github.com/snowkit/gif) ported by Tilman Schmidt and Sven Bergström** from [Moments](https://github.com/Chman/Moments).\n\n* **[Linc RTMidi](https://github.com/KeyMaster-/linc_rtmidi) by Tilman Schmidt**.\n\n* **[Rectangle Bin Packing](https://github.com/Tw1ddle/Rectangle-Bin-Packing) by Sam Twidale**, used for `ceramic.TextureAtlasPacker`.\n\n* **[Ase format parser](https://github.com/miriti/ase) by Michael Miriti** to read `.ase`/`.aseprite` files.\n\n* **[Fuzzaldrin](https://github.com/atom/fuzzaldrin) from Atom** to provide some auto-completion features at runtime debug UI.\n\n## License\n\nCeramic is [MIT licensed](LICENSE).\n","funding_links":[],"categories":["People","Libraries","Game engines"],"sub_categories":["Projects","Haxe"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fceramic-engine%2Fceramic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fceramic-engine%2Fceramic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fceramic-engine%2Fceramic/lists"}