{"id":15107633,"url":"https://github.com/opensmock/pyramid","last_synced_at":"2026-02-05T18:02:34.526Z","repository":{"id":130589421,"uuid":"570110033","full_name":"OpenSmock/Pyramid","owner":"OpenSmock","description":"Pyramid is a Graphical User-Interface (GUI) builder and editor for Bloc and Toplo.","archived":false,"fork":false,"pushed_at":"2025-12-03T16:11:26.000Z","size":4704,"stargazers_count":40,"open_issues_count":21,"forks_count":7,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-06T20:59:16.026Z","etag":null,"topics":["bloc","graphic-editor","gui","gui-builder","hmi","pharo","pharo-smalltalk","pyramid","smalltalk","toplo","ui","ui-builder","ui-editor","ux","wysiwyg","wysiwyg-editor"],"latest_commit_sha":null,"homepage":"","language":"Smalltalk","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/OpenSmock.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-11-24T11:09:38.000Z","updated_at":"2025-12-03T16:11:22.000Z","dependencies_parsed_at":"2024-01-03T17:25:43.905Z","dependency_job_id":"35086bb9-47db-436b-bcdb-764081b5d2a9","html_url":"https://github.com/OpenSmock/Pyramid","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/OpenSmock/Pyramid","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenSmock%2FPyramid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenSmock%2FPyramid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenSmock%2FPyramid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenSmock%2FPyramid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenSmock","download_url":"https://codeload.github.com/OpenSmock/Pyramid/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenSmock%2FPyramid/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29128621,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T17:12:17.649Z","status":"ssl_error","status_checked_at":"2026-02-05T17:11:23.670Z","response_time":65,"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":["bloc","graphic-editor","gui","gui-builder","hmi","pharo","pharo-smalltalk","pyramid","smalltalk","toplo","ui","ui-builder","ui-editor","ux","wysiwyg","wysiwyg-editor"],"created_at":"2024-09-25T21:40:35.611Z","updated_at":"2026-02-05T18:02:34.520Z","avatar_url":"https://github.com/OpenSmock.png","language":"Smalltalk","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Pharo 11](https://img.shields.io/badge/Pharo-11-%23aac9ff.svg)](https://pharo.org/download)\n[![Pharo 12](https://img.shields.io/badge/Pharo-12-%23aac9ff.svg)](https://pharo.org/download)\n[![Pharo 13](https://img.shields.io/badge/Pharo-13-%23aac9ff.svg)](https://pharo.org/download)\n\n[![License](https://img.shields.io/github/license/OpenSmock/Pyramid.svg)](./LICENSE)\n[![Unit tests](https://github.com/OpenSmock/Pyramid/actions/workflows/CI.yml/badge.svg)](https://github.com/OpenSmock/Pyramid/actions/workflows/CI.yml)\n\n# Pyramid\n\n\u003cpicture\u003e\n  \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"/assets/PyramidLogotype.svg\"\u003e\n  \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"/assets/PyramidLogotypeDark.svg\"\u003e\n  \u003cimg width=\"400\" src=\"/assets/PyramidLogotype.svg\"\u003e\n\u003c/picture\u003e\n\nPyramid is an User-Interface (UI) editor. \n\n![image](https://github.com/OpenSmock/Pyramid/assets/49183340/d5b6957d-1015-4726-94b5-58ad1e62cfc9)\n\nPyramid is a WYSIWYG application (What You See Is What You Get) in other terms it allows you to visually design the expected outcome.\n\nPyramid helps you to produce final UI in Bloc and Toplo libraries.\n\nThe designed UI persistence is based on the \"-Serialization\" projects below. Pyramid saves a designed UI into a method as a string. Refer to the \"-Serialization\" projects to learn more.\n\nYou can add plugins into Pyramid to extend the editor capacities or create [your own plugin](https://github.com/OpenSmock/Pyramid/wiki/Add-a-new-plugin-to-Pyramid) with your specific functions!\n\n\u003cimg src=\"https://github.com/OpenSmock/Pyramid/assets/49183340/0ddc1ac3-bd6e-4f4b-bfb4-60eac4f48e39\" width=\"200\"\u003e\n\n## \u003cimg src=\"/assets/PyramidPinPtah.svg\" width=\"75\" height=\"75\" align=\"bottom\"\u003e How to get Pyramid\n\nYou can load a release version of Pyramid or the latest development version.\nBeware that Pyramid is currently in alpha development. The API is subject to significant changes, and stability is not guaranteed. Projects created during the alpha version are not designed to be compatible with newer versions of Pyramid. \n\nPyramid is available with Bloc and Toplo as defaults.\n\nTo install a version of Pyramid, use one of the following scripts inside a playground.\n\n### Latest development version\n\n```st\nMetacello new\n\tbaseline: 'Pyramid';\n\trepository: 'github://OpenSmock/Pyramid:main';\n\tonConflictUseLoaded;\n\tload\n```\n\n### Release version\n\nWe advise you to use dependencies committed at the date of the Pyramid release (Bloc, Bloc-Serialization, etc.) to ensure compatibility with a release of Pyramid.\n\n```st\nMetacello new\n\tbaseline: 'Pyramid';\n\trepository: 'github://OpenSmock/Pyramid:alpha8';\n\tonConflictUseLoaded;\n\tload\n```\n\n### Add in your baseline\n\n```st\nspec baseline: 'Pyramid' with: [ spec repository: 'github://OpenSmock/Pyramid:main' ].\n```\n\n## \u003cimg src=\"/assets/PyramidPinPtah.svg\" width=\"75\" height=\"75\" align=\"bottom\"\u003e How to use Pyramid\n\n### Create a new project\n\nOpen the Pyramid menu from the Library tab and click `New Project`.\n\n![image](https://github.com/OpenSmock/Pyramid/assets/49183340/602db97b-dcd1-4824-a3ef-125ee5bdfd16)\n\nThen the project view appears in a new window.\n\n![image](https://github.com/OpenSmock/Pyramid/assets/49183340/b4f988ff-62e1-452f-b409-75439c584878)\n\n### Add and setup graphical elements\n\nUse the add button to add graphical elements in your project view and edit them with the properties panel.\n\nhttps://github.com/user-attachments/assets/44796af0-95d7-4e29-b28b-fdedfdbe7a85\n\n### Test behavior in the editor\n\nUse the test/edit button to switch between the edit mode and the test mode.\n\nhttps://github.com/OpenSmock/Pyramid/assets/49183340/a85d8c01-89dd-472c-ab4e-41d51a8629dd\n\n### Save and Edit a project\n\nSetup the project to store your view into a Class.\n\nWhen your project is saved into a method, you can see the preview on the `Pyramid preview` tab.\nBy default the element will be saved as source code.\n\nUse the `Pyramid preview` tab to edit an existing project.\nYou can edit your project with Pyramid or use the code browser.\n\nhttps://github.com/user-attachments/assets/14711a00-b31a-4915-a634-3685bfe141f7\n\n### Test a project\n\nUse the `Pyramid preview` tab to test an existing project.\n\nhttps://github.com/OpenSmock/Pyramid/assets/49183340/12a916e5-06d1-426f-954c-2e4e911475e1\n\n### Tips\n\nTo edit a `BlElement` instance or a `BlSpace` instance into Pyramid :\n\n```st\nelement editWithPyramid.\nspace editWithPyramid.\n```\n\nYou can edit in Pyramid all opened BlSpace with the `F12` keyboard shortcut, this feature can be disabled in the settings.\n\nWhen a window is open in Pyramid, an image is displayed on it to attract the user's attention:\n\nhttps://github.com/OpenSmock/Pyramid/assets/49183340/0c66a3ac-7bea-48c1-b1e8-0b093b1db4d5\n\n## \u003cimg src=\"/assets/PyramidPinPtah.svg\" width=\"75\" height=\"75\" align=\"bottom\"\u003e Documentation\n\n[User manual is available here](docs/user_documentation.md)\n\n[Version française disponible ici](docs/documentation_utilisateur.md).\n\n## \u003cimg src=\"/assets/PyramidPinPtah.svg\" width=\"75\" height=\"75\" align=\"bottom\"\u003e Plugins\n\n![image](https://user-images.githubusercontent.com/49183340/263474758-37833c2b-f7ad-4b46-ab58-cb3d92c28413.png)\n- [FigmaToWorld](https://github.com/OpenSmock/Pyramid-Plugins-FigmaToWorld) plugin provides capacities to import projects designed with [Figma](https://www.figma.com)\n\n## \u003cimg src=\"/assets/PyramidPinPtah.svg\" width=\"75\" height=\"75\" align=\"bottom\"\u003e Dependencies\n\n![image](https://github.com/user-attachments/assets/192ff62a-ce48-4801-a437-c9c83720eb5f)\n\n- [Bloc-Serialization](https://github.com/OpenSmock/Bloc-Serialization) - serializer project for Bloc (this project define the Bloc version of Pyramid).\n- [Bloc](https://github.com/pharo-graphics/Bloc) - low-level UI infrastructure \u0026 framework for Pharo.\n- [Toplo-Serialization](https://github.com/OpenSmock/Toplo-Serialization) - serializer project for Toplo (this project define the Toplo version of Pyramid).\n- [Toplo](https://github.com/pharo-graphics/Toplo) - a widget framework on top of Bloc.\n- [STON](https://github.com/svenvc/ston) - serializer for Pharo objects to Smalltalk Object Notation format.\n- [Stash](https://github.com/Nyan11/Stash) - serializer for Pharo objects to source code format.\n- [PharoBackwardCompatibility](https://github.com/jecisc/PharoBackwardCompatibility) - Automatically ensure compatibility with old versions of Pharo.\n\n## \u003cimg src=\"/assets/PyramidPinPtah.svg\" width=\"75\" height=\"75\" align=\"bottom\"\u003e License\n\n\u003cpicture\u003e\n  \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"/assets/PyramidLogotypeCartoucheSimple.svg\"\u003e\n  \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"/assets/PyramidLogotypeCartoucheSimpleDark.svg\"\u003e\n  \u003cimg width=\"400\" src=\"/assets/PyramidLogotypeCartoucheSimple.svg\"\u003e\n\u003c/picture\u003e\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopensmock%2Fpyramid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopensmock%2Fpyramid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopensmock%2Fpyramid/lists"}