{"id":18817392,"url":"https://github.com/exoad/poprock","last_synced_at":"2026-01-15T07:30:20.989Z","repository":{"id":209473510,"uuid":"723883306","full_name":"exoad/Poprock","owner":"exoad","description":"Portable and performant self enclosed framework for building desktop apps","archived":false,"fork":false,"pushed_at":"2024-06-06T13:16:44.000Z","size":16300,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-30T02:22:23.350Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://exoad.github.io/Poprock/","language":"Java","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-4-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/exoad.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":"2023-11-27T00:45:57.000Z","updated_at":"2024-06-06T13:16:48.000Z","dependencies_parsed_at":"2024-06-06T14:52:38.251Z","dependency_job_id":"e46919f9-b82c-4db7-a9eb-cf7b694ff7f2","html_url":"https://github.com/exoad/Poprock","commit_stats":null,"previous_names":["exoad/softgradient","exoad/poprock"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exoad%2FPoprock","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exoad%2FPoprock/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exoad%2FPoprock/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exoad%2FPoprock/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/exoad","download_url":"https://codeload.github.com/exoad/Poprock/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239753731,"owners_count":19691162,"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-11-08T00:11:09.339Z","updated_at":"2026-01-15T07:30:20.920Z","avatar_url":"https://github.com/exoad.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"Repo/Poprock_Logo.png\" width=76 /\u003e\n\u003cbr/\u003e\n\u003ch1\u003e\nPoprock\n\u003c/h1\u003e\n\u003c/div\u003e\n\n\n\n\n\u003e [!WARNING]\n\u003e Currently, this is a work in progress!\n\n**Poprock** is a resilient and lightweight framework designed to harness the extensive Java ecosystem for the swift and efficient development of desktop applications. Beyond constructing basic GUIs, the Poprock framework seamlessly extends its utility to creating straightforward games, music players, and other applications. In addition to desktop applications, Poprock can function as a standalone library for diverse tasks such as mathematical computations, audio processing, image processing, and more.\n\nFurthermore, it is licensed under the free-to-use `BSD-4` license.\n\n## Features\n\n* **Graphics Toolkit** with hardware (OpenGL) \u0026 software rendering \n* **Native Audio engine** using ALSA, Jack, Pulse\n* **Tailwind** - real-time signal processing (WIP)\n* Fast **Linear Algebra** lib\n* Thread safe caching libraries\n* **Image Processing**\n* **Property management** paradigm through pools and registries\n* **Prismix** - color \u0026 Theme Processor\n* **Txfyr** - a simple texture atlas library\n* Seamless native SYS calls for Windows, OSX, and Linux*\n* Lua SPI integrations\n* Uses **Constructive** semantics to create always readable code\n\n... and more to come\n\n\n## Design\n\nThis section documents quirks and other features that are used in the \"code\" of Poprock\n\n### \"Named Construction / Factory\"\n\nNamed construction leverages *method chaining* to produce objects that need much information (parameters) to be computed. Here is a look at the differences between traditional Setters (imperative) and using Named Construction (as adopted in Poprock):\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003cth\u003e\u003cstrong\u003eImperative\u003c/strong\u003e (\u003ccode\u003eset-\u003c/code\u003e)\u003c/th\u003e\n    \u003cth\u003e\u003cstrong\u003eNamed\u003c/strong\u003e (\u003ccode\u003ewith-\u003c/code\u003e)\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\n\n```java\nJFrame jf=new JFrame();\njf.setTitle(\"Foo\");\njf.setIconImage(ImageIO.read(\"icon.png\"));\nDimension dim=new Dimension(300,400);\njf.setSize(dim);\njf.setPreferredSize(dim);\njf.setMaximumSize(dim);\njf.setLocationRelativeTo(null);\njf.pack();\njf.setVisible(true)\n```\n\n  \u003c/td\u003e\n    \u003ctd\u003e\n\n```java\nUIWindow.make()\n        .withTitle(\"Foo\")\n        .withIcon(\n            AssetsService.fetchImage(\"icon.png\")\n                         .as(ImageRasterizer.Type.BUFFERED_IMAGE)\n        )\n        .withDim(300,400)\n        .withMaxDim(300,400)\n        .withLocation(Alignment.CENTER)\n        .run();\n```\n      \n  \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003e [!NOTE]\n\u003e The formatting is also part of the \"Named\" Construction pattern and is critical to making the code much more readable.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexoad%2Fpoprock","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fexoad%2Fpoprock","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexoad%2Fpoprock/lists"}