# The 3D preview of a floor plan

**Same source, plan and 3D preview.** The 3D preview is extruded from the same .arch file by the separate archlang-3d package, and checked against the plan. You can also download it as a validated GLB.

ArchLang draws plans. The 3D preview comes from a separate package,
[`@chanmeng666/archlang-3d`](https://www.npmjs.com/package/@chanmeng666/archlang-3d), which reads
the same `.arch` source and the core's own drawing of it: the walls stand on the plan's walls, the
openings sit where the plan puts them, and the stairs keep the plan's treads. The compiler itself
gains no 3D option, and its SVG, PDF and DXF stay as they are. Every picture and replay on this page
was made by that package from a plan in the repository.

The drafting-order replay draws the plan, then raises it into the 3D preview, so you can see which
line of the drawing each part comes from.

## Plans beside their 3D preview

### studio.arch

![The plan: studio.arch, compiled to SVG.](/examples/studio.svg)

![The 3D preview of studio.arch, from the same source as the plan.](/3d/studio.poster.png)

[Play the replay (MP4)](/3d/studio.replay.mp4) · [Download GLB (96 kB)](/3d/studio.glb) · [Open in the playground (3D)](https://playground.archlang.uk/#z=jVfbjttGEn3XVxxoHkaCNWNKo4s9hhdw7AkSrIEF7GTzaLfIotg7zW6iuzXSbGBgn_YL8i_7nk_JlwRVTUqUxot4XoYi-xxWV506XbzAG-SublQeEeK20A6qUT7WZCP--M9viBUhV9ZZnSuDNz6v3iu7Ae1V3Ri6HlwMLuSujpTHrVfGPCK4rS0walQIFPBZ-byC0TZ-Ht-CHsg_wjtXwzVkA1xZQiEnG70yqJQxk8EFgpM3r1WsoAMsw-BJ5RUViJV3202VVlDBZK9OlpdbDoNsblygAsoWgwuUOkYqsNOxYiaDUu_j1lN4xQtgHQrnPAypEmFH1AQ4Gx3KrbeaF17jI5nyKnc2Km2JOUfWQdeN8zGMOWYdJZvaUEDpXQ2FoO3GEErN2WqMshh-TImefvdhiF8HwNbqGFDXA2DjdYFFNgBCrgxheis_rPOxwrYZDIAL3O0jee08QkXG4Bm4YjpqZ8M1fqoI-9fzLMtQ6AddcN62Nkh-vv_5_XtUpDdV7GdYSHXAThlDhVREgufnRj9ou0FoVE4pyV7guTPb2iI0hmPXnKi2FHguVcRz4b4eQHhBXdCIlc7vLYWAWZbhV4yySTbGaJVlvYtllvF1dyGVxJeO7LDhHtk0kc07mvmR5ptxN-mtq-P1N0Pn8yM0XX_haklGdPHaf2ozqWK74fQX9L8JTLDnUGHUmgyG79Pa5_i7jnlFdogtt1JLcZ9unrCvqWA6Zu8y0LHzRvY3PfbvUqGGOP4JfVvAE14pZY83ZeXIO50feX9QxvRJW1qmOI2V27THmdLV41z2YlWx-gqnyDY1AxuHzSlp8OuSlU0Ybe8Dd2i7rJMrN3_XCddC2Wb_j__-lpA6sEMpthL2LH42yrXPt0aJICxREU4MZPyq_woh5dfIxtnEsKEIlWxIQNxzXaQchNwEOF_Fp1pp2-br5ijqnS5ixRLMzhus0nZDMFRGIOw4XM1i6WLXxWvXV2Oq6-rI-TLLzkV_HlJPbsv5QRYJ_uIpvA0pWUcKyW3jE9KeLpYHXfwVaX-fTMoNq23hdm2rzSQ0oEvY4jxhpwBpYF50yPDsGwCL2RGwOoR6AIgC2l5mO4Yyzm6k4snaefktnxX3-P1_CNE9EF_kbmsjeb4svS42hFHh1c5CBYTHeu1MGLNcDmdU5w2fhKpVzGS24AxIg71ITnOC6d6CrqTTl4sWJJjlVzApRPQws-yvMO0WjpjZ6ilmkQ36Tfjs0KcHngnuqYnIDSluHMmi6Eg0EE7zEVypUh4W2WR-czAaVsVehN4azUdXquEJVDQuYrxJCm-hLI797NRPhylodqsUbDtb_L9YLwN44nlEw5ofnW2BdSx-JqSdL4xvESq3Iw9t5WapPHLnLfkJ1ipoC7VR2oYoTw99MsEvb-ESJLhte96LQC2H1b18chpmYgwOq0WGupa5yhP7LE8HNnbrGmWTbfLk8ctbhKhswWNfiuVzGhqcqy9Dej2o2NAkjUsB3sXkoqPpi0xGzlyHSN62Pi3UCcchjzmOd3cffvzn3TvxVOZYq_wega9kmyrK0kueSyx5lConeBUr4s0qe6CVUnnKo-IZ7TLIGEreaEvHIDn8WZbVdRq3LuVAK6-OU8BhPrWqpuJMfqlg4pPiE8fj82UnQD4cenW7wzN8lA0EjFJ5x6e6lMIIJ9vOZD4_6aD5InFKUtqzrjo38yPbLk_t2EaQTufrtYuRR_SyDBTF0bpBZb_K2g59p2uygUsXomfZ3qaEigsGqLV7oAncA_nOC20MUJ6_DtKc6qkkTzZP1RjtdOSEjtE4zUuDjp1u11ttCm03lwH_-Pmnuw9S04DR_vXVNMuer6ZZNsFj-rHksawUm744r964q6iEI8FztQOr1kfOKT-U3hDVsMI8qYI7cqd8MRHSVO7G3bNDSZ4Pw0cXqCh5V2lDqe8aZfkl2hjUpILY7lFsbaf37sipzL5_0_5ftf_l8JcRQdft2c27Hl_9bdRecTnbws0WGSLtI4a8cNihVn3UkeIp6qaPyibLFpIm9LN38bmaUKuTd027iYWB08No-gS1FNQAiDoakg8joPHuX5THwzfTm-7jdCiP5TD8tH7EkL9B3yr7oEL7REXCcJbNllfZ8mq24rtfBl_-BA&3d) · [Plan source](/examples/studio.arch)

### furnished-flat.arch

![The plan: furnished-flat.arch, compiled to SVG.](/examples/furnished-flat.svg)

![The 3D preview of furnished-flat.arch, from the same source as the plan.](/3d/furnished-flat.poster.png)

[Play the replay (MP4)](/3d/furnished-flat.replay.mp4) · [Download GLB (377 kB)](/3d/furnished-flat.glb) · [Open in the playground (3D)](https://playground.archlang.uk/#z=rVnrbiJHFv7PUxzZP8YjAdOAwRclkZyE2YzWOxN5ZlbK_oGi-0DXuqhiq6qN2ShSHmKfYR8sT7J7TlVfuDo3_hhw11fn8p0r5_ApR3j7-eH9u0-fH8YwV2LhcrmCX37-Dwjwa9OZYWaNWdK_fBvmhdXS5ZjBWvocfI6wzo1CcJvlzChIhRfKLArsts5b5zB-QrsB43O0gM9iuVIImRVrBwLm8tkXFsFYugekhpVwTupFFz7l0oHRCNJBjhZhTg_l4axuncfbHH23dKie0N2Cz6X1mw7KRe7BzPl5_rDp-Nwi1rJl8Ch15togUmucA6EUzOUTts5B6swYC5lZCqkdXMyEz9vwKH2ao35TeKmk37QhGqUNSj5JvXiTSS31og1mPpcpvllKl77uwjtPCojW-Z4hwQq2ic-FBgEuN-uA5wzLnaJUUi_AaHrEgy6WM7SERv99e__hw0PrHO4exndt0MaHM6V6t4Bs9pXEFIP9pANnlrjmDwIsCsX2XZtCZbAwbRA6I5TWOSipfbhrTVc7saHD0OmANhFzrozwjrQF6R2shVJtmIn0kbzmgwpBn5ky9C3ZgAzbBqSDAlKFwgqdsvtTo5TM0AVOCb3xOVuTZJoKm-bwJJTMhEfodJy3MvVTko9AdCDaW1OQNaVeOPCGFMxYPJLEmcKmuGVy-nolU-LfLZ8H6HXh_Qe4v_t6fP-xC3eBaiWt5UIbiw6mSsxQTTk8mPvGZnRZmtM_M3SplTO8eD0l2RkWgBxEggEqh3wyOtlotQGPz56474nydCc9mZolOphbs6xM6boM1-_C3z58_ATfvxt_M_4I39w9PPxAcn98949xF6ZiQbT17BH4QmZfwS8__5fgvyCMr6bgxSO6bbpUcs6N8SsrtYcLAXMrswUTZ5QkIJTRi6AxIc82MBomkCGuXrOXMrTyKQJb44WXRlewpRqBJs5w7HvPYchx1QYBK0UUz4ACjsOEYAUFWmCF9K4EzFFkMyNsFsIDwXLIs2TCIqwtoWs-ZwpP8SX1QiHkQmed1CxXBV0eYqpbok7NfO4wECvESSAJpvjKwTfj958exqCEztyuNWyho1pRH_qmhCW0KI8g4jv8V4HM-zmkqL1FF0JYOEiN1WhdJdIHJkiOMLeIHeeFzogdLJOrOHjfcWYu2iDsMs2FtG1IzXyOCF7MFLYh5Kb4qRaLVGlDhu6xTFsQj6-U0L4Ntli0YSWFNuwLZQq9QMvXZpgqwZlk6uS_cVrBzjAVhcPgMm2CfXyZgspAoAyBSsGUDTkNDJlmuPL5NCg_6MKn78bw8Pkv8O4j3L2Hz--_HT_c3_1QJtW1UI_IBGiGtTUFKRXjK9qptFspo9EgKQFLhySieUKrxArWwrKdYiKEVNq0UMxkyncm68ylUsAVAx1I34WHYuEq1UkXBLEsqRFLVJspGZJJoQni_yQnG1bGyHGzRVsxp_SbCl0bFXKZZagp7qjiBRtdko0exuMyF9w9jOHD38cP343vvq3yeZVSyjQeUixkgou4KbySGm9j6ueXFXqBkBuTgaPsTgYKGnnzhCBCtXFiSRymkGnzF0tprbH10zPhpAbhS9i9Q6WEzJFUzKRGH47TrQr1wudVHRcxqVFmZrtVZp-RUOywwjN1MaaOYN4ZKrMmh6dCU5jFWhNJYhzCSkjrKj5ULNmhBblsVngotJKP4UJbNLznPLHDzJwXqUIuQoJZ2q6CQlQONdmGa7lQqm4C2A6Flv6Vg0JnaJ3MkHoh4cvCH1qtTM7naDmJzNCvEXXTxtRLcRsXLCxDuOSbUGHIQGQK5kUjY_l4i0h9IZTaxAzdbfGBs7dV2_dWCX8GP7aARXWwXLYAFlZmMExaACuxQgt3A1gZ662QvgXgUqEQerf8gDbW51CsWgCZXDoQhQ8xKJTiZ3PMChVrXqsFwSwy-3I9CUcBnz1aaSypK9NHjc5BP0ngR7hI2slruLi-TPjNT1unmUInT5fnwptecp3sgThTvChCPHgCZY0viRLkaBzfOv8o6TishPWS81N9vhfOD5OoCr8ZjvZloFb2V2AMGroMDqiSC6Um-hRMeX3AOCQKY7jTGKOGHKMDclCfcFqdwag6Gt4fdA21H6dxRrUI4X3TR9y5yOxLO1HyCTk_-ejN8KJyCWTZZ7IEcDsJZ_c8RcAb-JZr9RkUVGLCbLGFWoYroZY-LlEHl0nyTD4qUf8aHj6D8sWoEWILNpKhhg2urmF7DdjPYQg620IgH9bqBi-Xgl0zQr9G-E4oVUtVCpaHDFBjzjDr1ZjB5JWyoyR5vkxqzK_jdNU7a2LGmWsXtl_CNkjBsP3rI7D9l2EDcxi2wZEAm-zCCp_vW4AgiEU8gsrsy2wyt0Z76liq_CU8jMiUa5n5HG6SBKjMIWgUllod68FxwZc0iAXHtADOedAPjAr4XNtjMaeHXlXUAGw0UVTC6hY-yMPnw5jH0OW5C2rdi0VYC8S7yECvHJgVErNfQ2aQG0HITDFTyFMjZGatK0G6WxYIccQWiLlGeLjs_QYLEMIWZGD7DuTwqoK8fhGSELYgA1VrSLYsIf5qSELYhezvQQ4vf4OUhLANyRTdl_I3QBJDofRmxV6GjFVJeOiNKkgKey5etFhZhwdDHRceBoP6ucskOfbYiGbNBtz2Y6GY0q3Xp9Cqxy4HyQm0UOCFh_7oFFr12OXlcOsxjodOpwM7KZ2--12vKnap26QGTVez0G1oexvDXtVTh5kwjD5h4IkBLXzZ2TJw7CuF5aZ_iXp3M8XtspNG1_16Yxii5EADlhVh6Raa9y5Dx-WXai474jaF58EwEpWDIsG1YZ3LNC_71bpnz2WGVbJhxWJX25yY6FbeTvJSkaxVvSgl9ykjhwoSUvJVkjz3KZykrpNEDeCfJtTgRoDmWqVkZphjqC04hkGiTlRDiAG1CwOWIgjBlXGYJGFpgsThI1jBzZPoZg8XN0nSvmoo1OOm4qgs5XagloWF6VU16iZJnq-HlSQ3R5Uq9KTcBTBQ72aYtHvDSimKg-er5GUk3jM0fUSh2W6Yh2r8aEejc7iLS4lUWCvR0farsdmtl1hGw6qwK-PCsFfTaVbN2oy3tTQrV3vC0855GRekYb1Fi9O429peanFozEVak_QRN2FDxXmTdgXfK5HSemvDWyhaHD9ipLHR5Uo2DuvbVA7aNqk8TNqDfrJt8N7lAUM5-dxxWObG58DVuBaib5bLsIgtx2wi7G0M193Szx2eN4xMn8uiX9YCWt5za8QTadxTNPUIe6gGg_tE4cGoYiAJ-XwinKzIpPDGHgpJTu8xIjnD1xBVSo798G29f7SFbuzhGnu9EOGMfTgnNwOz4H35y5liSHUsaNpvMrvuyGvU-N3ESf14GpWr41GcsLOBXyHd1c0pHK4PE14KvYQzOIWTSZevafdk_xhOXE8f1iu0ynv5-RBOsVqhnZTbp5M416dwljK1Zi2irU_h9E_6Pexlm9E-vE6SNg0QZZRQVrzZxahIHqez391vHOR47bEjypWRVyWh2CE3HG83FcIpiGFyFEKJQmd2E2JiB4J7-tJTg6MQa-HRTnKkP6cgqI42ICrrVlMm_InWDZMQrzAOZbWKOTe9Sqo4LdQYmhqw0O6dxLi66Q__KEYv6V8Nj2Cshc2smeG-k-PE0YyCIxhPQhODDxAlbnkqQa6Og2QWnTuYZXZABv3hFsier_t_pq_Lyw9qJ-rs179pStXfVg3d41EMwm9mvrreXJVRsQcYfv6ZhP6QG7HLYdK-rnNO2YjtdHR7QDNjHl2Oav6CZIPeliy1yckCnT_-2i6BuVlzr3rA2nXKKItNnHAbOvHvGKdz-lVVG_aOx59Ffu_xdfpyhbvpJ8eF97kvZrvHw_ha3n55XHeZoX_h9uvh1u0tAC-9QvgRVtb8E1O__-sBj36T2QbO7mya3wvaePKv-2f9pD_qJNed_ugMfmr99D8&3d) · [Plan source](/examples/furnished-flat.arch)

### laneway-house.arch

![The plan: laneway-house.arch, compiled to SVG.](/examples/laneway-house.svg)

![The 3D preview of laneway-house.arch, from the same source as the plan.](/3d/laneway-house.poster.png)

[Play the replay (MP4)](/3d/laneway-house.replay.mp4) · [Download GLB (112 kB)](/3d/laneway-house.glb) · [Open in the playground (3D)](https://playground.archlang.uk/#z=jVZLbhtHEN3PKR7IjQ1QdIsS9UlsA05iIIAFJ3BsGFlpiuwip6NhN9Hd1FAxBHiVAwQ5Qw6QI-QoPklQ3TP8SLYcroY9Va_eq990Hy_gLB9MWHvnFqjJckM3mLoYac749PEvHJ9j8e8_iBVFeCYdQEGcsPRu7mkxLPpFH69drIydo2LPMAFLF0w0zrLG5AYVWT3Ey2v2N3BLtmIpRsaKQXQg-JWFNiGSnTKodnYOKvqwtGCNhuoaj0pn8VQen4Mini5deF4-HoAT7Mys48ozPAdXX3MAzcnYEAVapDkPSjhFH49KY_FUjp-D7LRyHp8-_l0OUHZOKaCcPR6ArEasGBOK1ZMuU0syXiTUZDTcKmJyU_RRhujNshyiDCYyPiBEzxxhnY8VbsskJyS02DjMaEq6_b-sySKuvJXkfpOOtHO-6ItVayPlGaSneU0h7LyZk9dsh0VC6V20ZfzRrQL38KEAVtbEgMWiAObeaIwVdn59LMnHVLAA8oxDpRArM70aIEh1ylm9ClW5yXJNVgtRkGRprAq0GlfLAtBmEUArqWtdF8Bnk1EUyGk2-llzKdIA8DqyN84jR7ccAkZK4QMeqYF6jEenY5Uebve8mUJ82Lvzyw8nY3UPI6fwYQbZ78sYDX-NRybxee9KnrAtxY73YfY-HrUq0sPnMKRJ_wfGaEfIqIUpkCfF6Gf-sjbXLFOWCQfzO0Mc1xITNU24Ru_CXMsgP8ErE6cV2x5WgQPqfHyVD6X8MhTQrrEJsRMxpyUUGqNjhaMjIVdIL245JC0p9Ggn6ncUq54YpmBic9eNNVrGasctD27LsR3jAlm3TJo468uZdzZCOrvtSYoYSeYyz3OlIHuOYZk8QiQfEZq0z2x0yInbQ2z7KtRGi1lCbs8E-3SDfXimVDJj1DyLeyBJU0srtQlFjE82rmcbWuK5T2jCupAJL7NnKVurofqKddonn_74M7NJk17m-N7Mq1gisEx52k5kuc4llL_B1SZv5QQ94do16cVvtJh826EIlxKNW9UaZBYwMdFWCotF3qrSF-X7y59_-v7Vy7eXb969Lof7sttudtMrjvvqz_fE79BOe8VY7Zrs0M6k5Pp4m-uRUnfstjWRknR26gG78dl4g3dyz67dSRRxON7EFbMCmK28NWmRzrzRc27X8N7Xp2XuZrPAEUdSbGO3DbaFCNFddwgPQYjmL0C0s3oZjL16CGKkvggxdSsb2X-VhdRgD6KPtxXDr9KNgCzevf7h5ZuLF78OoD01FhOeOc-5Cw3nDx5FGT2rJdMmSuPmrpyR9FUCjTSpWb48uDbBTOobsY1uCU-xYi8gFlWeSRPTTSdfBfKFRPBkQwxQm6tMM90z8i2H68DpqjOAlWMQps55bSxFHu7lRYTtCO7uGxMXo1scpHE1tktMXnZnSq2PjlNDbXGynh2gKUu-WWenwyOl1ufbdfdWzHv7fSLp-QqV9JlvCY3GLaFzpdap8h34L25G-9jtfurqnrbOMI1jS2_cYWzX8T6CdxPu2CW0ll10y0xNfnv0unzJ3lyf7NB7T14L3B35lWvYtwFkr-wEyEw3ATaqz-8UoZnijkyK1TAnsGvw0y5tx0qtT-8ATCgYi_sk2hpkHjskTpRaH4_Tzogm1nKLWnr3G0_jvVtempbLyQ16L_y0uiA770FTZPRGanRyoM4ODk96uC1u_wM&3d) · [Plan source](/examples/laneway-house.arch)

### knob-flat.arch

![The plan: knob-flat.arch, compiled to SVG.](/examples/knob-flat.svg)

![The 3D preview of knob-flat.arch, from the same source as the plan.](/3d/knob-flat.poster.png)

[Play the replay (MP4)](/3d/knob-flat.replay.mp4) · [Download GLB (88 kB)](/3d/knob-flat.glb) · [Open in the playground (3D)](https://playground.archlang.uk/#z=jZVBbxs3EIXv-ysepIsNWCql2KodwIcYcdugbl00Qa8WdzkrMqFIgRx5pRj-7wW5Wmtlu051WmqH37wZvuEO8QHe0agkhdpKxtavUUmHQNF8p_dgHYjg1suSQoRksCawXyG9zotGe0tYWenGxbAY4osmBO-XETJQDlOog1-2OzNubonnEdKptK8ihXKLQFay8Q5H82AWmke-np8UQ8xLsr6ZH59g3khrYwvLGeZQFMw9xcyOmqzN0LRaycAm8eJT9uUJ6J7CthjCr8gZt4CJ0D5yq4CflBvGV29cPMm4vAm12fA6UNoiXaV9IAX2MBzzpnExxGcPiUpLt0g9gnRb-LpXd9fGpe8054pO8qPyPuweG-OUb9pFMUS9Ds7k3F1xyizJxVxcY1jDcKvUedapLEekIkgZTqtyCy2dGuOT2xFXVm4Xwa9TcbLS7YHkyhCtURTGRTpQDG4dja5I4ZfkjaNsCllaOh7goQDWLlW_XBbAIhiFM1EAzgfWWK8KJJkRcp1aYW1RAJYYN5_--fTnr7jE6ZkQADCENfdJZ2ojGqNY70Kvrj_-fXv7By7x7l2OHaIk9SLs4_VfX37DJc5OW-CemHrS7VC0Yp1E5JVRl-HOmntKnj4SJ-K4dfRO3WYHtbIki8FNi_sJvxuuNLkB1pFil-Vb--cBOg0UOh-jS2XNwuXpWcgVRJuxK_JZyqtW9i7TroiDFFpaizwch3xLNfcTPJU0nQjR4a8dh-0OnkCH4iXrvvic6Qfi-_AryboTLtumt_cCpawIaxdhHPvs5cPDZw3nYUnW7yHd05zKKvgYe_cNqQWNC-D5lQDaMAXjA6ZC7C8BJHUPGYeSuCFyT3U51fXvMSlNc5jaoO7q4B3Dd5Hj0jP7ZTJMRY4ptCbEhRBIU0dwJAMiy8CITb5eUpHt7o68z94eWc6e3SI5o3It5NSOfn5ITy8O2CWpl-heYfks--hW36vwV6R359deSW0zkvBxMkILmZwL8SyiJJUDuojpywjJumtoGzQTIiXaX3aVX-cu559cSOMid9mzx31dR2Lkqc9unAmxmeVUe0pkf0_ADykTIcR_U3YjfheN-_Ym5byjnL-mxdeykwLT80D6nKTRGuWhQ23XUe8xk9l-tD77Wg4OoNk7B9DWTW9AJ6dCbKaiN7CkDqFR-6Zr_Q6affQG9EKIzcWzgptqL63Xtv7hd4076xqXtP38jFPKaNz_4sz6p3h6li3Fhi3hAavgv1LFb33VVJCNuyu3GHwIlb6RbjGAkkwYTMV0NppMRmI2wGPx-C8&3d) · [Plan source](/examples/knob-flat.arch)

### two-storey.arch

![The plan: two-storey.arch, storey 1, compiled to SVG.](/examples/two-storey.svg)

![The 3D preview of two-storey.arch, storey 1, from the same source as the plan.](/3d/two-storey.poster.png)

[Play the replay (MP4)](/3d/two-storey.replay.mp4) · [Download GLB (123 kB)](/3d/two-storey.glb) · [Open in the playground (3D)](https://playground.archlang.uk/#z=zVjdbtvKEb7XUwysi9iopNCKnRO7yIUTu7FRn6Q4VpoCRRGOyKG4x6tddncpWScI0IfoM_TB-iTFzC715_wVvakvDIrc-Xb-__pwAYWdN1gECEs79ME6WkFtW0_w73_8E6whKB0ulZlBQw7igQFUzs4h17QgncNU2-Lej3r9Xh_uKARlZh7QlBBqgkajGc60naJmgpB70GpB8O795O7m8krOCE4kwabRKwgWaEFuJffbqtfnY_Nz-TltlS6ZH-VBed9SCdbIF18TBcAQfxSoaQRXWNQR_4mHqS1XTIYGrCuVQbfq9YVD-TQQDlTpAR1Ba9TfW4IPN5Prm7eAEUSU4q1wnfuAyuUwJW2XQA_KB8-sTG2oodLWOt_rMzt82OOcoLDx2kB-kBSEAXyNjvheZm3Jb0oqNDrySSqswjnkJfnCqSnBcPirtybv9cFRY13woAK0piQH-YJcUAXqUWGNoSIoa3ye5AoRfyX8VMr5ELkEQ1R6MJatakKvDyW_tRUoFmhp2BxamQCFJjTRzpPrK7i-unlzPbmDy18uPsDbd6ynNwO4eHsJk-uLCdzcyak_vbt5OxnBRdQzax9q69Rv1gTUULRhkBTa60Nek5rVodPp3C5IGJuuAvsBkAo1ubVHsjFyesB5o8k_3TjwyC9mOV_Vab7Xh0ppYh0s0cOUKuuIv3qCQmPryUcDUjmCD3WyWYmhnUMl2lH-kQV6fRgOPWkqAkS-fS6aztEVtcQV3zkcLhQtAR-syUdwE63gVAhkQBkItSOCoMj5ARh0zrJo59HlRWdPfKcXGP-UZSJYjI4o7RMf7TgMdigPAyFtGw7YvHPbfyUe4VmWZew8dkHOqZLEfSrrkjPGDIDaGop-g5B7pXX-NK8Jy5w9HGGpTGmXMLWtKX2kZF9tFBWsbFvBTONvysxGHe9-RJoWyB6Zw8Xr1-9_fn97Mbm6izaSW30yu0OxcqjRwLzVQTV6pcyM_SSpZdt7PXspRt2IR_CBmWPO4oknvhOdvxorKWIMD6KJEfxsfUjycLzW5EjsQ3y0ZjeTSMV7cRg4y7Kn4-Msg5IqbHXwv5fXYWmjGkqbqDF6mHxBDqrktAUa5iGQ1rCyLeDUtmHUk-g4mOwl4QP41ANORcHDfN4DmDlVwmnWA9hyCej--nueIHbd9pWORwmrsPYBUKEH0CB7zMUz0GhKX2BDPQBjXaihbXoApZp7wDZYQK17PQBNAT7AS3iRbXjog20DOViqMtRwuEStoSATyGllyB8lskt4CT99gaykJtTpzARewnhHOnoI5JR1ILChVsW9Ie_T-euL21sm6Wj6ybdQOaiZ4KlIxkZwrYnZoWq1jpeyY8diVIUoHAfOMRy82fKlaA-I96vypa_ZjGu21hzBBD7BYTbIjuDwQ_p_ecRvLo-g0NYTfN4BYv4-LqFBFxTHyBYUO9snOGTpBEkeLo_2AO5VKGoyP4Dx7HkWGYoPn3uC46ydd4xwgETmvfqNRKEPYiyNU9JwcI1aH4BkTT6-Q6_VQmImwCHTrUFOX2TZA9_YgdzKwQQTqXaAkkAbpMjuFtjJBuyP8XBCS6RRMClmqnwpxY2NHG3GOeD4LMuSox6zeF4CVJlgN3J15OXHJJk1kIyFAY5frBHOdgG2JNpAdDLtYJw--xrGjhx9uIDAxkm51_IJyXXoSjLnnM7AVlV0a4l-Tlxtw-V7fJJlA1DGc7CHWvkEua4gnEZGMKmpu3Sd4snHBBHTmgeTinCXFf06JY6iQ0Y6Vb5cbqlsrfTTbKNzVh7XFmGdq4vw-QhlS2trmONnG60dj7Ms6qhqnVGhdQTeVsjltXNHU9Qcn7aBSre-ZlWQ1MLk4lmWPbw4XfvTna3wYA-yizCvzD3gDJXhwsEW2cSerSrGZY749s6Ae7wFu6DvIIy_iVDYljPq9zDOvoVROVXOvseGBOweREyonPzkgePzOMsGHEEpPM-y7EEuL5WLpUOSTOfB5HYKuNT5TdE-33SBymzGA7i-uri8-mWrbdn0R4IthTD2Mcp35c4avYJDfAQpk8DStrqEKcHVx9urP1_dfvz55i9Ho3XqH8PBHzZsHmz3T_-3VWCKof42QDY4OcvWAPF5D4PK_7mKdHX2C4WEr1zXgHgspe1CuaLV0iLugLFQCSnyuwGTTiyBvcJQJySm2IWg8vgHatIrKoXiuMOJv_ehxj9WlDq08R5ayr1v7cZlpES0jXSf51-YLgt0TtFmoOFpEf1W1PS22r8nvhupAIuCDTdz2NTgCMtIszaP55dFTWWc6G0bJNsvFMpEtl0kIicjOHwVp6du1Nw2m0xXc1uS1lTGQNyMmFQCJsQ5ljRsG5iiLqxZRfF3p8yjvdIpFvzB2stnH5OPd8lPxqdfJx_vk2NsEFN88e3H69tf7JGz8z0qYh3_XyyEp1-oeh3HXy95XVfAF4qjJXJO3LWa1ZING6cWWKzO0xTXTXbJP6To-qCkCY7zDASbkCW4eGZCw21_bXlNISNfGgwTiWxgqOufxT1tQ4anv8dSJUVumrCT8Vqq510_IArZq1dT3pEYiJG8LudDJ0n5i0WdUR7GW33rpW2nmg6-CjzugKc2BDv_Cmq2h3qnzOwx6rJYl1aWeRT57PqD4w7tJLbW-yyhV7IdiKlvm6kdgQXiOSfV030IX9slua9g8IyzDcEF-yxx8V-W99Iu1w3qZCu1aGvvvXyNUSHexhUmJjQu44CcAFofHJYx6zni5QZvojhrJFR-vXZYGZM9rjx4y0ulfGFVKSsRnq8NHJboOZ05KgKyXeB3cSFXKpxZg9ofJdi0E3v36m7yy_vXk7udPMZez8N5GtaXqO8BC2d9XF_puB1dqlALV_wdp7pLmDVqC75tGkfex_1kHMKpnNEAplTwyqm7gDXO4RSXTg6Vlr3JTZrT376bJNjCcmSlDj_p-YksK_E8DvamnU_Z6DHLc07olkNyamcPiKG3NSRzDWg1xf3V_qoxajBuG8USvp0GhwVveqP8HMxxc8I9VQLWhIu4A-l2H91SOLCyoFQeZ44orokeXaplodrtNhOm2Nv_9W_5RvmxMAeoUGsPygxgWauijlIyTwiGAlRqFlvnOXmpdjE5MR57-0wa09W3_H3bzVk0P-hyHs8V2x1nXEMpv94855Lv1jvJtNazpvMYaQbLTT_g0tg0ub65gwZnMQCMhZy7tDwtLSVYpLKOuhalksiq0cwgjlLSmAUVNKWmtXH2V15ZPt41xZrHYfRxuoKDC1fUt2hm6T0GgoNxNn4-zH4ajp8fCPbn_wA&3d) · [Plan source](/examples/two-storey.arch)

### turning-stair.arch

![The plan: turning-stair.arch, storey 1, compiled to SVG.](/examples/turning-stair.svg)

![The 3D preview of turning-stair.arch, storey 1, from the same source as the plan.](/3d/turning-stair.poster.png)

[Play the replay (MP4)](/3d/turning-stair.replay.mp4) · [Download GLB (29 kB)](/3d/turning-stair.glb) · [Open in the playground (3D)](https://playground.archlang.uk/#z=zVbBbttGEL3zKx6sQxKUFpaS7SQGenAcJTZqWIEtwMdoSY7EbZa77O7Sslvk34vZpSzFLRCjpx4EkcuZN29m3gw5whl8K7VGY3tP2KjQQOKPXrpA7jD0zsAHqdwprCEs4_USdoWVVusmeEhTQ0JLUyuzzmFsQNjY5OTH2SgbYXExw4er-flvuLzF3c3lYjG7xuLu8nyGs-uPOL84u_48u8X8eoa7-c3HMb4oqshDOoIyqLRqS2XWsK4mB2tA9-Qe4YN19JhnI3iL0BD6riMHTfekUdlOkY_HpbbVt8jTy0ePZa0carsxy9N03XdLlFa6OpmvlPNhSO-Vx8rawDF2btFKy32jhmQ9xkxWze6sVo6qoKxBZVvyWDnbYtPIABUQbF815HMYziU-y0ZQwUNbs4ZXNeWRMsfysiWomjMvbWhShh7Kx574Rq5CDukZVzFhBwkfnGQiqRG7Pny6ms9vcHkdb67ni_MLbko8HWPB1bIPcLYfQnepE43VQ3Uq6wy5eNmwbJTHRupvVGcjhMbZft0k4saGhpvmSEZXGRj6NHqyRx6vnLVt0pBWJoAR2WEv9o76xezy88UCH2_O7m6Z-sXl9ecxlg3FPCdvj8WS6RRTOOXJeVbpZCLQtpABrfUhZ6Xs1Sb1CnZDPhuhmGBtlVn7HJOTI_Yb42xrQ6bmcqcWJbFzyZlnsN1zq6gjbbkTpb2nPClUcRRuGQdEUQzhno_Q5CiR3g1Zqijt5IW29yF2JRIacDaN1TTmajXkKY5hNDnZGjBCjpIqybMeZcxV75xdKc0D579F-bTW0emuHrGQx0fMSRkehd4fOmKNmqCkPpT1vfLWPcbyT8XRO7RtolwcTwV-SX_x2YkY47wPScfbFRIsikkhtnp_5IkOSmv4vuWHQ0FylP2Q9PGPGXmL5d3X28XZ5c3XxXz-9XYxm31ZwlFnXUhNirVJw5DDmirWaSld1aAmXzlVEg4Pf_fW4PBwJavgUWmSTpqK_BKdU2ZA4rKu1Lp3NPRluQX4IWI22nUvLYxBNMNk8WodD53iRSedCk1LQVVbAXVamlcedmNg-rYk57eTxXkEasmEOHVppVS27bTigWFHHCx6ZzhgzPkAf2VAb1gtbZsBa6dqFCID9uYnAzrJO_RsGvn6SnaUAca60KDvMqBWPK99sDyrWYZh3RY4-Jy2RpR9Coc43lD1r3FVyIDXIhdv4NWfhOlbIR6m74SAliVpHFxIrQ-iUfFWiLx4L8Qb9J63D4fah9PqPpYy4DXDPGEeTZ9hXkXDgwSTvCLQRmo9bOS0geghkFPWYSIEOumCipu7ECLa1zzK1kQm49KGYONOKQohEooP0gVsVB0avBcCfsMEldlIV-8QSgobogQzLL1tItOfQgX7QwbK1HbDnNLh2MUuJrfiZOC9s4rMNa32kLNoEuXBRY1vLPTdFkMIMXQR263DBZ-cTEXOiQ81Z7sHHvDB9EnnT7bPTIUQ_0RlwH3L4-me5feMf09am-Dg0_CO_hepraXW_HXwE7VdJZovFFxJ9QvU9oFqdhjkVqa7_6Q3Z-0K9p5cI80a030VbjX0lKepMdB7kYZKqp9Jo6T6Z-oZgr1EQPyJ9H-V0Pe_AQ&3d) · [Plan source](/examples/turning-stair.arch)

### bungalow.arch

![The plan: bungalow.arch, compiled to SVG.](/examples/bungalow.svg)

![The 3D preview of bungalow.arch, from the same source as the plan.](/3d/bungalow.poster.png)

[Download GLB (139 kB)](/3d/bungalow.glb) · [Open in the playground (3D)](https://playground.archlang.uk/#z=pVrfciK30r_nKbrsi9h1wB_g2PE6tResze5S2UCOjY8vQcwIRrGQiKQxJqlU5SHyDN-D5Um-6m5pmGGzcc6Xvdgyw-inVv_9dYtjGIBXZqVlxwfr5A58uSjdQhhYlGYltN3CH7_9DqGQMLkbDcfTwXQ0GXcG49vO5IfheDT-cA_yRaw3WsLJc--sf3F61jpuHcO0kLDRNsDSWRM8IfjgpAxgDX26nzxMP4IwOX1aCZdLk74bT-6mH9ug-JO3ZSikM61jKORa-U0hnTyDaSEQTMJSZAFymalc8kbbwmoJWuxsGdrgLT3caGHABxGkBxWuSUoAr4KEX5JotFNtk_jgV3p5ju_OIXdi68HYUCizOoNRACPW0sNSPUvIlZNZUNZ4PMpcuKyAXPrMqYWETudHbw10Ol5qmQXae35NyLT9HE7uT9swX4jsaQ4n40r1rBz8Sv5UimDdzKtc4ittWMhMlD5Jape0IL7WOq5_Aq0kCu5CsRUuRzhfGqe8THDDU7IHPvYypKePp2fwEZURBRMmR5mboggn2aqD74eAj9qwLVRWgPLoIFnQO9gWO3qnsChwKJ3xILZihz6yxm9ax-CsyK_pLa2elVmBs3ZNUi1sKGAhc3zgIYgn3pDOgy4gcM_kTl66Z5VJWOCDP377vXUM0gS3a0MhtG7DQoSiDVqUJseHTypkhTSkcOXRS7InmYPQ1qxqrnsGEyNB5M_KW7cDrUxAkUstwUmRo1-1Yf44u5tMvp-NJ9PZ8N8Pg-nkbvZ-cDMaf5h_C1qKZwkinQO2KhTJl2BRBlDBgxQecbfK5HZLR1IBtkpr8GIH3lYR5iXp_fZu8H46Gn-Aj8OHu9H9dHRzD-8ndzAYw-D-h-HNtI1bgIBc7LRaFQHWUvjSybU04QwGLis-CbOCQvjWMRgLvjSwtrnUuBC0CCqUuSRJjIVcBElRdeACXux8NDoaVaQDaGufEJiX81G3hQjyWToQC1sGKOwW1mVWAIuX2TVFsrPlqgAV9inFYiJAGy6Tq1NYK4773FoH343Gt_dnMEBdL_EbOrveonS4t8wrN6H4cBKdyHRyuRSlDvCkTO6Boh-VKwWehz_ColQ6lw62ttQ5iCyUQusdbEpKRFVO0SrHQ9YTG4mW4nlZat0pJJ0VX5YOrAmcpnKZPRHKxmZPMgCjsL_a5RIE9C66XVivIbPOqdy6azISHZbzJbu4wdQYn-ByAl2opdV5BK3cH5-hwAqFQA-0WwN2Iw0FoCCdh0IYsM_0l4S1yAplpKcTD0h_rFsWxG-l3FRJkp0FNXC_VWZ1cjoHJzn8Tak1LK0DoXW0RUwvj7P7x9H4w2zy7n5693AzHd7OIROGjLnZ6B2wvtakVGs0p5awtVVs4YY-paGUL1rHkAw9Z4nnsNjB1qmAhzWW7A8CXUa3IRPOoSt7FByEy85a5HBH72J5PIJfWgClQa2t1y2AY5ivnMrhojuvcjN6-g42wgWFtYGdS3nodbsQCpU9VXkrebPHOonpwBAkOnxnLYOTnipO6WWOCligUz5O7r4b3E0exrcgPGyl1tcgYKleQukIMZM5zJe69MUcxEoo4wMIwkUB9mJpgZ5vDQjekEQz0ns4-eO3_73onkJmrcuVoQSQRHbSW41-EYUiYFRBxxuxQb8JcDu8G_1neFtbD1o9oa1BlKGwTuYYQOwopL5etzsHZ0uTS0p_WHoIeTSeTrjIo8ugEE4o3Hn-OHv_cDceTR_uhrPHwadPs5vJp0-j-9FkPOdDYcBg3UUlY4LIpVPPMifYmmSUMgBTv3SAZ9hgyogsgoRTHpbkqqjMFNVeginXC-k85g0CLU1WiH3G8ZaqITnDYhfQHxFJacmk4qwFEH2nBbARG-lgcM5mycQGMX0mtITeda-Lr3DtKzctgFytPerSot_Si4XMqTBhuWy1_jbTIcE7nU4HfCG1hn_hijIjX-r8P_5xSGxnfqOMnIMrja9yIGxVHgrSTa6eK_oWUybVbqIGpLJYI2WhqCB-WwFzqZ9DbuN6L9aSkkqNdCLYGbxDDoFZHSlbXsVnqh0eFlLbLSGLWuxYM-dcs9jB3cMYbkf308H4ZlgRF3LGr9CWzgfYWGUCmzzuwLI-zn6Y3Hw3nM7uHsbzVINZ5I0wEgEy8azCLhIPTOAsqJcrqtUtYLdX-Vu2Dv6TL0E6ZR3APmD73S78AifddvcUTnr9brf-19VFFz-kPzJtvYRfa9jb2ULmPcTeJ4c9do-xLxMo_fH1FUJ9BtJ_BeRNAnnzJRDym78GSQvj8f4MJRG8v0A536_lv1k7B9JEXvkazuV5TSD-cKAbEYpXdHNxtQeiv_9MoFjD_wrnqibQVf1g-1BnTt35h_8I70MteE8oQZ0yn-c9NtJir-hV4JSopdyAMu2YFtHlmditYy9IoJFodpYiwyTAbP8M7vexDSeUwBp7UenJLRFAI6mOYAQROVD5WzeLLQZWew4V_ufVzxLQq1_QHUCLhdRw9Ilf_h-4VciLjrDe-dSl5PSsAZ5CCMFTrCTw80Pwd5Gz9I6iDAQemcwhbD_Bvvm7sP1XYVOAsCo4DBqw59_sYb_jlxNohI0QDVikoknaWoARLEr_QmQ2wn4UWu8xEyxBZMplJTYitomfwqjCZz8n_P5Vt_vS79e0IULxOT5x44ZXxJBCzFoMMmb_APMTv3ygijIorcKuAUv9ZxT16kDUr7sHsEN8-ehQVIKohS3VrGsKGmKtSBi8CiXpCf6rsMXmikY13Kkon0YxsX7WG2wVUsNFvLuqP7UOAOOMgfK3-YyB8eC97j4BcfHHJ5zPuKIRCGi5DJF0K9OqJKw1U0jgYu-kPPWT2ODK7KlqXKr2TPm63HEKQZj1GUMmuOeJrEy42GFEloWdOjJywR2OFNQvEJPRKA6XeJKIpK9RHSruxGAhWBy91CmDD8KF2MTEDb3VKoeNko5AFzJsZZKrOlxk39xjxwY_c9ZHCqWF900jRN2l5hStgcHYrizRP7DE_ixsgHdp9vKEOZt7VeqkrvetVDLFzpawwtT85dYK-zyEZeqMjVuaIZFXMR-L_Su1RTQrqbViaB-7YHbaPCqlXmsgsQcR4BvMM_GgmCBrbrb3swOM_gFGr4sghxiO2_jPfBXzCjppvS8mpl0IbDB4pLCylhq5lb3Gfo-cA7sdbbMnv-_1Y4vC_T7ORdOLS1tqH1t8r6iriXMDOokwfosNCc7O2nG2p2lYw3ORiOvXMqiMpUNPrLNqtKjQOA3bSh9QVhxPcafGHkIKwLmoeq6zWcJWyacpua3XWNzZvcnRGq79o1gvKr9OSZhDvR5XhBsHMGqNShCBlmTWGcwGxgcp8nYc2hAdKKmpjnOT1ALjN1cX_Ijb7Ct-geMVGUNMHAfMnTd3cmMdDuzgnEF8Yd2hI2J5igZhX4r8UQQsfzVfqqly70LVgAYzPCWpZeloGlObTGKzg8pE28fxDv7nG9Mcgoy5g2ynost6MFIRZGWq5GeY-D6f-DQPmMwUNz4843njkHywG4HdepTFX9dLO-s8jbNwp5TuVP7WNjgKBkaiKTF9fZ3SVwzZw-V1tvf1Z8t7ry3fCC7gFdW4uLjYL39D6YWX74lQA6BOALgOMgOI-_dr-7MGa5We0_w_peiEN-aBOXaq15F1F2KhgljEaQEmbl-_OEi0W_iNzEJtsE-pHquBTw3ulybf8FOpcH4-LSRndGkwuEL6mKYSKpfU5PLkWOVvTTJb5LsVSz-0GtWsg6WRguNSzP9pbVx6-crSfmWr_drXl8rGUur_0DM_N3Nq4I8h3sLQ6dMID0S8qjkAj4R6D85eeOiEe3CeqB-E9lfIJfMG9HbmlXmC1AxdXnab2vpzuX00WnufKBCmgewTS6fIuaz4X0S-bApdc_o4wvyHXh-dvhqIUlXgKzscPy681WWQ9QFgNSMlsdrx4sJIojK4jL3dWbxMnJNTVzdIWGpcNcmiE33luXTGIQ6XTrtcerzxU1jlc-WDMBlz0sGnyfgD965xBZzEWVEch2FOb0ya0ijndH9RRmXYehU7puOqsP5UChek6-D8nRhXnII2Z1nfRlP-LONlTPVtJoLQdlXKs6pMeWFUEG63NxjiCpPxYJd9T7nYCzXLc5pLp2kYgVabIWem6yLmyspggX8_uBmSEo09nFNjTnIqBOoRtgbpZ4GDvxZg5TSKHCCaiv092brOe6PWz4GNxMRYGdh3yTTbzaPDs6c3tvDBPsvUuv2tLa4OtmjALZ3KV_K_gCOy-0W4zJYmSPf34Xq9Q-kaeEQ9434U6mz6yK6BLBz73IvuyyWNrvertxnJ8dnqhQ0BGU9tdbf78s3Bal_YLZGXg9XMyuur33S7L2-YhHyuClpfNf5fEgCrDcnfFMEuRTXmafc5ce6nBZSUY1t_b5fiqLGYy26VGXv78QhtVl88xVebqxcyr5mQZ05n3DsTxAWOFbqNedCrAP1XAfYZmiq5eP6HKZrT3v4XJ8rD2nr8xYCzdsn5l2-lbOAflewnEHSfzsmyECntpsJ5jH3wz4eXmMLsYn9M1_kauzv-UYcKPD60ZaCnylc3Vwu85fUFD_mw0cdImX_lwSE8DgYo1-glZed9Rtro0mOJa8NaBcyGIvCVMncriYuv7XPMfWpZJWGPw8uYt126l_Iyszg4xY5iWataHvPsE09TwQe5OUtCgvKp0ebWmgb-OczT4GbOwY-bJHkqIm7EGg-IXSFVv1T67JIqPl5vQZMNzfEIIslpWY1815_neBUWL2aop0eqyZBD5I7vZ4Pv340-PEwe7udNm8GqlDzROOZrwBBtVv9Vwdo6Sbfh8_SbG7xrfpI7_h2DMoF-rEGfahdk2zN4LAQ3wyrwPRJf3CUv-2HwYVjd3uO-uBuqzwRs5UGZTJfJ-yggqgtDX0gZ4p0oMvhgocBWCUfccRrdVCWGV1BBS7pZBtg4-yPeWh7dp59mVXfP9D2KY2aLHRzhDzluhHkWPn6DZOao3-1fdrpXnd45Pv219ev_AQ&3d) · [Plan source](/examples/bungalow.arch)

### courtyard-house.arch

![The plan: courtyard-house.arch, compiled to SVG.](/examples/courtyard-house.svg)

![The 3D preview of courtyard-house.arch, from the same source as the plan.](/3d/courtyard-house.poster.png)

[Download GLB (235 kB)](/3d/courtyard-house.glb) · [Open in the playground (3D)](https://playground.archlang.uk/#z=rVtdchs5kn7nKTKoB0sRJLdIibYsb--G2lZ3K8ZjdUjyeHdeRLAqyUILLFQDKNGcjo6YQ-wZ9mBzkt3MRP1RktveWb2IP8BXmYlE_vMAzmH6cnIMn2E6nZzCBrwu1gbHPliHO8ht5RG2ufUIztqNB6eLNagCbIkFpLZyYadcNhkcDA7gNsf2I9AeQs6bDUJpdRHArvij0qhiBKrI-N1KOx8g5AQcLFRFhs4H-lYtbRUGB6CDgKkAl7dweQMfrm7hHK6vrv48gQ9WtmoPGaZGOcxABTicJ0kyOp4nydH4cDqlN6-SJDk6E7TBAT-baaMXy0qbLMJsnSpLQnG2KrKRsBosr_P3O6E8Vcbw-gAKFiSbBWx1yAcH9L7y6BewtZXJoKwCzKawmRH7W1QhRwe6iIArY60Dn-aYVQYn8Im4xCI11qOPnKvBQTwXCLlDHHtcb7AIUCoXdNC2GMFie8eiXwh5-IBuF2VKiA5V5hvhwz_-_l_0hnDjk0ewyNCnTi_x8GgSbFDGL0a8I9UurYyi5zC52XiljWEMrzel2YFH9FDYyAwxiFEjfrqAH87fXn74Ea4_vr-YwPljBfG5KlGoXDpU9_JpofQDwlbtSGqq8FskzRscwHCb6zTnbzKLtJiOTBeZ3YKx9v7fhxO4VffYSORuG_mIi2whXNV0vCBl-HRxcwtbZcwEbokSesm6gL5R22bHCLwFBa4yke7UbkpWvM5jojLQJxudZQZrmEbVRD1SflLgJ41XKtXFegKXfO6FDWe8Za2MQbd74aOEWX8jH0yh11nEr2mvbxcrr9K0p96BygdmoUMtSY5AL85vbidw7tL8veKLToJnPVzuoHR2SYTbAuUhIdfpfYHeg12tAFWaw0qlDaeCzfK12wJyS5RG1WX61L0oKAoDhWUjAzZNq1KjH4GctfaAn1UaiAHVHgNdtSKTD72xdGVXKlUZgjL6HidwjSpj0lV6z-dxxkoJoFyaQ63uhL0pDfp_aZDHbPcmvGw8_sXbAsZjjwbTEJnyjESP76gZOCytCx4WQznI4RkMSdrDRXtB7_DpdXSOwwXdqsGBiJLOhORz_vb66uZmXwUb0WzpzL3dIB0LG0420WRSccNXU-7iX68-XNxMYPE3Wmf0A636Df7x9_-G34k8_rh0-kEFbD4XDvkrj-5Bp52v1s5WZbQifGw-qIB0uF7M21YXa09XnvfnysNfL66vYI12g8HtzsRItdtAF6wGDr01D0hqw8dudqA86KhTbJwdbNEhZGgwIN1HtSHhWJfpQgXSHP5EZ34Ey13Asc6wCDpVZnAAmVNbvmV_xs0Snc91SXJ8d_H2_fn1xbsRFEQY6GKFji71ytkNbMmo0aUnTnOiofDkFPz_6pecWedAdqLT0bTCEo3dQqoKSJVzO1LXaskmFpiVxkoXFtTGVuwpBweNAshZ1nSTEpgMcvVAAnD6AbMJLPoqva-0dAJ-Ac4aU7s-5VB5qMo3sBiPu4e_iM6Cb7lcd9DB0xVu3Xy0SGJVEH6-ev-fP159YOmMyG6JowKHaVDkuPwZKPgop1ff-dYT2ILkh2KWqpCLC1M-TOCT0yGQCfM1JIchZDBZDAWy2aVvyNSRysESwxaRMEuNKfraHkUtcU5n1rUBSHNOgmi0D2xmZF0ED3qDngwzyS_FIjiryd4YQ9q-xw-5RmK35-EkilIP6NS6DohIfFVgrW_0KBpmo5bILqg0KsWM7G9OFMeHRTm5jZzJufEWSEXPYGFwFcZ2FS-vWtoHjB4wbC04FFeuDGSazkfbgp235cAkGkOgCObN4AAW3mgyKAvIrHW-fw8s3wJbxzKtAA4VGFTRH3k2BPA6SWCzYdPAQdJ0Lh90VCnuiixu1e7oTTTxCIvSpvcYhA5YSZwhR0qabIvJgEOb4duGip_Iig_htwFAVZAKbzYDgANYrJ3OYJ4sztoIytOFgGmSiFOLLn6xMpXPF7DSn0Pl6FAKvhmgYDKZzBN2d5MBQEQcAJSK7vT5saxNVYkDAJ8qgzA9mya0pLAu5FCVA4BMbzyoKlhQxvDCqIus5gMAg2sssgHTfcvhmw1kkcjKsgCCQwy1a6cwZgILr-kak73gIILCwDekYIXaoIeVfkDG65y_Ldr475H1EDiO9-Rph5-ORuJVDy-ORoC_VipYd0d6zMCHN6PIZLx5ccXRCHxVOO2R18puXxUeQ_zg0xEFYLjj01Dw7vr8h9vLDz8y6k8XH68vb24v3_LpK7IJJabhrA1XyMcUlhBhYzM0RAWQuoeKooIio_eZCnxkxBX8VrPEYVSOG-1L1nAh_3cR_Hg8HoPP0Rhim1Sgth2tynNANP7DvwHE2DL7jgEBPwd0mtW5DqaOkwR-g8NklBzB4fQl5S7tqyndmyP6Nr7iVKGm9HZrYVUZM97qLORd9c4sbGwbzG6tuz_ji7XEXEduhOklX7mVqOCIYWmdLkTvGmvKFqhevMSM10_gQokbVHXOwvwuMVWUS7Jp04XoifaQ2iLoorKVp3CAtNhW61yCGk3hYqkceXRIc1Ws0YMyltOuSUeS2zsi465o-e1Ic1ZL81gEJ2KUN78_BvFfBjntgpxGkOZ2dpKb4NGszppYeRT9SIx__Qg2OsRcdWlDTv6mQOf7bDHelwhqs9z4mpNc6Ga89ZvjLrHTeSJ-epok5JrFuIptJZdKx7f3WMCCj4aCHqLQbjksKFWBpk_1Wpm7LTxJ9nTOZBMtNdn8-vSJ4yAYfAZGuJ_OOjjy5ikg8ta7LwIxDQ0xT-lGpim2-BLG6_qevn5Ov-51SPOvYKjl5mktDTl8BcrLpKOp8mYPCLPpl4HmrUTldTQ5j3Bmf0DQtL0t8U2D1BpYsTeSV2DWySEo9uEkZPF1Brab4Qzfy38CklAAJHbR2XfuLi6ielGtAl7_DYGY_UyfxDAsogyB46KIzVgHnXiLIzVxy6Jyaq104UM0evwoevaLWFfgXFmCNKPXVGMqFxGUTCQjaRetMmZk_aqS_TA5OUwt1aGapEdKVxwtS2y7sQ8x1G5AGxLoyx6plB5Hq9oVULw6kUVoJVYTLPI63pfXBe0birQEI5cApwse7xRJv748T6O944URTnYNIk-dZERSDKna9Z0zx-1t1K6bkL2ujtTlkFpQ_NgmRF9r8kz4uTQ61ZSOHnKsvNUeYfHpjuqQd-_Pv794f3f18fbm8t3F4mhfjnWQW1qzW9uCv4W-HfxWU15jPGsEO5Y1ro3i_FGIGbLkTxn91Tw5EvF2q33xzPiS9uoDw5_ji6evFVsWAq9Job_OxUrao_1e4gaYxtONccRjwJlUdVv2_gBw9keAxwzYNU0CmDwDePwE4EGdX9WpniRRBW7b4PosxulVtqOY08dvzI6Ddlt2oieYjiJsTLghw5JTBSlCSClXLEhrFUZiTcRA8MXEbF__5PFMK9Tnw1eYbnbn1s07jN_Qnsi0Xa10ij1dqAtCw5v44mldYKdHtyx03FutDo9u-p9k9RCipY27909PXGAH87g9QMacdTC_VyGnvbX1pt17gFXQpg8oDvNpwI9BGx12DZGVvK-lE92Z5Mvjf_JPElZOoUEXi5jEhPajYCGa6QUZwDa9N7txLB0In9QfMXqJFE6bHeNSH0V1oRYQlFtjGDXxOiliU8WRMtn15V8u3tUtBK59a8NlLGOINEaONTzO0qqQW4p0U8OItVOkoNNLwKClhF4FqrZZBztbTeCqoN11esSoseiMjS2mNKZpJJRG6YIDblXstmp3BguSWFOEQWNekOXfUnxeJ-4c8ersu-xOkhuxWlO2h5JDkYGQJ0vCRtk0xnsTBSenfvWoDkLFT6qfoGsKtUrSsxz1Og-wVi7Doq5cgUpDRQcH2rMLZ1glT8ykNsLJqRSq_BaxBNRscjptAoi1kTYZodTD59ZkfY6lHm0glnjIHjWZlArwkqK3KIPTJBFOmPEnUNZ9FElcGGXeoMySBsUR-23exOZpxF0E1bJRmB1Mj-dcJdrSrljY48PjynJMW-4RSy9pFJURPOOmBpV7IwWs-ECqieg67uHEJWaxfI1mUylIkT02qriXQz-kugllRAx6Ok9Y82v7THIpTUXp0i9qszwaxQLZohVW3QdUesPdwhAPh9K9_nmIkY48sRglk1IBZq0UTx8LsYUQy9jsRT6CV_MEoLu7azqiNWwhxBbuQZzQ0T0HQTt6EJLoMETMeVSAKZMhEK_3IVo73-GF85NWKT0TMk-eR6Ed-xCzRxCnyZchZvsQx48gpszM8xDHotpvlcesqUtLIFBWS6PTupvOHSraJmZLwgeOxalyRReebIbhBLu2Ejr7ztaBeZO5iMWqr-u8Nlkx-d3fvR9593e_bHfHYHtve0zwafvJbF5733r7tN0uxuSp7RidLT057n92e-tTY_PtjKrm6GK7z8cRgm_xqbHtqbPvijqlYXrqYhv_daxWa__3NkdJCjMJMRN378vyqc292Igl2d988vxm7G9--egUX7OSP7e5F0Hx5pPu5pdf3NyLlnjzq9lXbvZ11YE3z0hesRLwFQLzdalBEpfZt28-bsg-7pQz_njzNtpmiPGBRIdfeVTxDt6ZuHl2Ou9vPt0TWKvvk8kk5Fg8UWr-lsiydrM-zo9wcZ2HT7j7DBlubOGD48Bx0utoa89te8yeGpsg2GZwgiNTdsw8RPCm1_CW4QNymtTV219PGG-kxVmbm4M6zakL7f3ySUcWYhGYpUgil6R7j4Cbq4-3P0kpu2nTNu2j2JyQGQQGiLVsGlDAOvPCns2Z7J1wHUo1GXXfJM6eMImPt2_bwaV590J1t_PKJ3djJ5-V7d-yO4sWrKX9sTN4ZI5XlSs0N8b-yRSnBfJ2pYDKM22pqUhzimhtCdyNk6RsdpIkn193klW7UsMeUlBLgz0kKgAhZSKMQJx1EW5p_XDwHEY09F_GkEKVbBu24W1tql1VgKMAtZeRSCYfGwNvYGFXK0-NzqijmaahDpmqobkQRuXG9gsPby8-3F5fNE0RUVbuHHUG7KwNpdPUMUztpqPQqQrK2HXF2twyHam987q4b7K1TgJUj_AkIJTC9ISsH0upjeM6Rxqo6hD_vgrvePolvJQmJNB9C96rL-GtnM7W-C30UdGpj9cDJOcaqqWsYE_b6vCYg3Z6UkeZp6-S5PMr7g23KNu0T5FATZY2BGq9Cykv54lAnDyBsFReFwCP6RCMSEqHDtLmk3kyeFLcjMKu_-kbSTni55dMwgFHH585ErArSpA2S2p1laXRrMpLtRvFvTFnbvxCPfxG3euCcbZ1W7muSah2OEJWXX6gqmuTlDUK31wBhzRViq7uENMAkk7Fg1E_K3ek6zLxEvIzDvHPZBgApcYw_KR8jm5IDz2dzSlP5DsXfQ6NHkykVuMsDTTB62RBo59yhzcqzXVBF_b787d_4gxS8kQi2VclDVGK1_IB2UzQks68Xlv-oKZokB60KAY5bKaNLUZzpzMamVG8Z-zw10rz5G49yKCopMegD9PJ7JTr3wbVQz3SSmVGZiOJ00AEVnROsD5TSV6ojM6jidL-_3T3w-V_3H68vrgjdu9ur7hGLq39zuloD_7XSjkca583Z8WmTRrIXNGJ9aRYgmJKi3rmt-gNRnFPo2_LRDIx5jt5PU9Gr46bwt5rUdjaeNcn3BzgXn2iM4zTrbIxRdwJlWEjDhrU0ltThTjn48GpWKVRwo9cId9U0WJcQ9rbq7bFAS8x5tQB50Ns2JOCSVzEwFQFjgWHnOIZCXdiy57mf3j2i0tybblpg6oIfcFl6O9jekkRwatGaOzyXnVcHvr7vuNdWnufKh_jES7Yt8VUthInneJsXNyIfXq6Z8SwSNtUhZLFpK3-U2zTQ6PFez6ctJT_xAxy6btnBrmU17NkXPDtVMLf2Yodel-zXObsUrg8kZZmh80TKWy3uiWrv8DmHpWzPzLWX0XlI9jj_zNscxm4EcSXtC5ULHQB_0oq_G-LWK9gxe7MfDiUgWapRQfLo0gTOJdgxij2MM3w6qOBOu07PD3q3TUD7-1ItthLqbv5-3gLpA4eeB6T2so8vskD7DxJTmV1xaY42NgKbR9a00inTdluzJdbkU07DYKfZfHwicGQF54b3EU2gU-cxsn4juaCXxyI1ZmYORKvrQLPizrOY5qxxyU2HoFq5nHuXvV4aya_FrYKVNBagFe7-kcFrfiYbxYOV5lkLZRk4PZ-SdFECdK06WQC4qeotPr_0u6guGvRqesXL2TOlIWVtTNT21rVoq9ojeekL_Zm3KjiSXZFMcPtxfXl1fUzP6Jgmx4ngTnkj780iHGXaPkbCSD4QUVKA7l17VoG8Z0qm99wiPbF_m8tdJkM4hEAZ2mEgGreYsfpwe2vNphRx1PL86ZKLQKX4nf7U5vaG8bo4fyYwlgmWSZ_OK455NDsAZ1TRZzuf02wI2pov7s-_3T54ce7q79cXP_w_uqTtLOJQN5Cbgji8QcdDMaeX-nsLzQu-GgCk7_lSO1uuYNhPa4XP-d-8iyZvRwnp-PpyyG30X7_Hw&3d) · [Plan source](/examples/courtyard-house.arch)

### hillside-villa.arch

![The plan: hillside-villa.arch, storey 1, compiled to SVG.](/examples/hillside-villa.svg)

![The 3D preview of hillside-villa.arch, storey 1, from the same source as the plan.](/3d/hillside-villa.poster.png)

[Download GLB (564 kB)](/3d/hillside-villa.glb) · [Open in the playground (3D)](https://playground.archlang.uk/#z=vVxrciM3kv6vU2RIP0xtk1KREvWy2xE9bk13x_TYDqs93oiJCRZYBbIwKhY4AEqU7PDGHGLPsFfY_3uUOclGZgL1YpEtj9vWj24-gK8SiUS-wSP4kEm4e_vND9--u_3qFha5WNpMreFf__xvEOA2emSdNvIJMpXnVqUSHlSeC9gol4EoQDgnkkymsBRGLOUQXCZhneM3B0ewUMa6kVMrnGaV0wacpiG5KJalWEqwmS7zFKyUJ3D7IM2Ty1SxBJlbCaoA-ShW61zaU1AWdCEPjoAHpLqQsJF5_jl-QN_hEMTeZDpvPEEX9KXNpHQncFeahUikBeVAPkqTKCvtzcERxFY5GcNgoR4kpNKoB5lColdrYS0UYiXtMfzf_0K8Fmtp4hexTUQu4xexeJSW3mYyLemTXC5lkcYwEGCkyA-O-NmeZ-CUyyXMc53cM-KPusAH5-pBFctTK82DSuSpzaVc40o3qljaIRid5zKFco1scRlyIjwTbDl32onck2i0XsFa509LXRAZSSZWC2lkCoXW96AXC2KUdWX6xFOESWLYiDwHmS4ReyBgrjcyhbl4qiYwiYD4NA3H3737T0i1NnCvitSi4NAeSSBGukw4yAS-0jCXxMgUBjZXKS52rZN76U7naqHz9HQuTHHKgnQ8hHVe8n7GuOEyjQ-OIJULUeYO9xS_MdK6IUiRZLDJpJEgYF6qPJUGNiRWInGlyPMnWJcOlDshcY-R3BhyVUiL8rchSX2QQ5jLRJS2fiJKVCEfEM4o52TxOXEqg1TaxKi5hNHo7xaZbORaG8f0IiNAFwdHgFOfmDvI5I0qUr1B4r9AVn8JwsEXa22_jHmxAuIFUab1GjfAOiOlGy1EQlxX8znK8gJ3HncOGM9vei4fZA7j-NS_msT0sXVCmRgGVqwkqBTm2mVAI-zQnwuxcAzxoBVxeSAg1eU8l6NMqmXmYCnWoJENfUKA4ragrzNRLGMY4CApHqQdQmrEpgi7Va7X0hDxqFF4Lh4wXcjCxfAC4nUuEgn_-uf_wEoZow08kvjyG5nCWigDegGysKVyEubCZUgHs-C_ziLcydIUypVGwkKsVK6kBZEYbS3cK5dksjj1B20uU5x7Srz0YnfqpDFIA9KWqpUFUTqNco58YYncaFiJohQ54ICTg6ODIxKrda4dLIwuvBjw7oXFf_3Ndx_eDv3ZhUIbl0lTQCZXyq5JdlHlWg3xXCT3MYgiRaUk_1EKp80MVW8Mwkiafvfqz7dA2nhgdemy4yFsMpVkKK-b7Km7TayVhUnoMDMyyYFngQUn7hmZ4GAhEpHKIQ6lTz1zvGqCOUNYJ5J7CyLXxbKx4pOgSnHzLRSaFPbnqHB1kT-xLoVUGZk4pQt7ckD24vBtsDB_QQtzCD8dAJSFchZWqwOApVEpjKPoAIBUMLwao45PbSLW8gCA9DGMb6Y4gvgL5foAoLWLNM4rTVr5AQCr6wP8CmXqp7BxjNHYIP7gZxx5BK9qqfz21bvveqVyiM_NaIwuEnkSBNwPHByDsPAF8gNVAcEOHodPx_DXIP5_i0EV1onCKeHYaAlLdjdNjbRWzNGU6EcYIJ_0pmAd_oIWBy_AZUZKAt5IBwv1iAfDHn_OZloYWThISmdZhxJVnzEOKa35E6AqcE6mYCRakCJBs8xGnHCZvASn0aMHsSwmJ_gyHkIsi9mK3xyTfJOUoCaic28VCgAkunBGJLg0gowro78qrSxXI7KAJ6h44xP4WjNtynrt8u7ru3evbwm60iZ46talWWsrb_hoELKXdxLFtSwsL8W7DcyOzyykMlFW6WKI3kfi8ifIlT8eSMlnFjJcKVJxcgCNh9b7irILzBCVvqT_18I4Xq_LVHJfSGtRnOEnGETD6BgG46uo8WJyEeHr8CLJtZXwM8HyEtKX9L9wfr5VP0rAqY84A3Ixlzkc3jJJh1BaaUkyCeIIYlVY6WA8jeIhnlGIF3lps3gYFBbqOVJaldjceHtGQrzCBc9JAZCNJ7eBoTUyVcCHt----tPtd5Bp64Js2EzmeQyTaQSrFSy0AVlMhhBvZvlkhmolhklUfUfSguTbYw9tyqJArdbQOShNaMrxYJAnWO2Hl-QxAxIFKIN-oeibpdbLMWIXUhhpUPdJUnyJznOVSst-G3k0wqDJZC8CHQdpYKmlBafXo-_evXn74aZ1kDxwkDoSW1JZgcfvb__4gTgHg1g4uJxGUQxzmevNMStfER6D1iIQyq5NjiYWJbnQYDdB1TNtP3yFuswyFCteet7tq7sPxIhh4Ap6dgM8pRW1tEV8JlRyL83xCX1Rm1VPkSpYEEWRZOTXr0eGnAWASrRYKK-j6PGaFHcTZi6sKqAPJpcLROnCXETR4_m0C7NJ8D0dA1o_0zDChw6ZI06v4QWMz6NwSC4RKIrAaCcckheIOICg3V_-Fn-E_P72L7fvYUySKAtnntgZu6kCKHJHht58n6YK5f3Uuy5D8P7Jb0qk9yTh8I3RZZHCItfaHHqddgSj0WjkpWT0if488jeFZEWXgkGBDjpgJVQBDzovV3IYoqg6OMmlq0yS918GS2FSWQStQUd_LjPl3ZmGa-QD3aQ0GO6hi3T7-s0ta0QBVq6FQRnhkCpRJsllPKxh72WKLt8KBufnUTQcRxOUMqdhML6o3xPJcbKJ0b9TDuZlvpQWvvn-ww-vvnt90rIVzFj56KRRtPxgK1Bn8hZAZTHO2GSET_k9PzR81qDLf4SLbJFnRKpKi4o3gmRTP6I1i_aFXtMRwfV_qD3D0qlcOYpIljfsdZB_atnlI-9koUv0n8jF8yaXNpZWzLo6MFZaR3p4iAzzDmRt8N1GJfK4zbbNDB89K2rOdVkHg9F06i0s_ftzH8DmeQD8yvOvF8h-HMhPH-wEQq4C9HsOTaCLgHPhYTwf_4jByAjNao1hYeD9W9yILS7qxUIlciZ3PZYdlvPI84FenPcSv9abVJrZZj_SVUCiF5N9SB-haRwFKH7Vj8Xx2UMysx-ligH8oepHIwU-sw8JPBftqsmw5jadoi9FkRXYtSrawVcqi-42djcuH5P_NNv0UjIJjuZ5Dxn9QHIfUGO-Z9AOMPUwS9HM7xPi83o-v95xHFJVzO6Ve4ZANVd5tRMLbelewhrz-fUOwu6V82C9Zz7aAmOWXbXFgOyqjxuXRpdrmbJdo_AHYzGfKfylhvVHSvP42P3wzr9A1MPKolQxxYw1OntUlcIDYNcJ3z-ilgnxxRsafQgcX_DcLchgHWpIVlQ1JOqRAPk9j_Yhi5-7hclKgckMSqQiE03Z46RB5rc0OpC5SbbhBPliBFdpkgB3dtWFo9EBDvNZYdl-N4nl3s04fM__txnO5pOcvRvARHHiRLHMJTsLaC_vbiHRppCmkb5VHFph6IKQmM1FRVFhvvr6zfvb17yuByW6qWBydgoOa9GPl5SOEEaKoV-acBxIo2bTKj3ZYhQbiADpv648krZhOCOfe3A2qY-kf1HN8wy9Qz74HecnbD2YnWXeofPOBuH7x_NJM-zl_Ql_BMwIGaeB2uB-q3w0zbRW4Lj7Fw0B5f08bIMzwhYw---e6lrPsVhNOsCvaXAHmBG2gH1EUMt_A3h61TlSf-LBhy1gj7CFHFKgFfJVB3nSQP7Agw8rCfwDu9l84E75oAxRYKlKRL4ybQ6Lp65NaIx-o1SGwmRMu6M_HsKykFgg4dQYDPv0p-ComlIOOHaUo8qliMVn7mXhpGF3UyQJfrs0Yp0db4t2UJHVwid7Fh7U6FuR515wKSuEMUKZCzQobW-Z1Dut7Yby7lQlWNNCXEnj4d-Lmzgblr5M2bmppAeXceEPykalLoMxnhAyWxxlUJUDKNzmDAKpF3_UOtj-3Dew6RAiSwL8dUBvuJG7HtE45EfwYaMhEcaSu1_VHhjUcpZYcL7NHyJKTs3FEyoLmJCW4WxJimU7ziNSIIEyImwjhw26dKEG6dPVnYUG-8d__h1ZrsnltMFMJCQsl2OPXqCZ4i1hzXJ50cMu3owWe5pWbwvRhwVcNMND4SMF4QBJDJs9jaIKtAPk4Wfy0XnSeHFVvNrZTh_R8GZyhoWRdek60MEu8x_X95jGhustHLprgVJkJBYEPXQX0Ftm_sMSYR_c2XUFd7173eioJdp48gimdneRfTUKnZXtBfv9aerOGr52UCv48BGC1yumxT8TMKjjhqtz3b9LlU-769DVyaMuU-qH-MosU185tsjhmnw8cX7H8CEdPLaEMw5bAtFt0eLN36OIUK4IFtP0tIL0pa6iCd44_6bNWaRye2Idp9HU-m1bEDEpsmuyN-QtmdngfPKGa7601L0v0N5wsTrUb9vVW8xrtAq_H1H3mBRTmLGMTk7OKneyLi0zR5Htl1EEL0DBf8B4XPP-0q_RBzHb88bjq9ZZ6vwdAZ_IndOvo_Yh2pofXJeBFL4ycLwLbBKdtw_NrwJriDCmg7fBwjF4Btj4MtrHJThC592oFG1WP1pln9tH46p9NCo4FsChz3BughfbQ9rZ-XXLCrREss6cf8LUbQ2aSnvf9UCGk0vyp7lChWl8lEzMuTfdgBrDOw9JhtV-xMCNG6JuPq4rAVjj6mTw-9HmWt8jaxaBIoxGzroUnXUo6oCYcglby5qOa5AzijgrlEY00Cic6IWY5U2US0S5qFFQgTyS4d6NkujFQsqZo9Ivx6vInsvaV8WD8ogge1CEWTF_K1ooSpteTgMKVm2upjWTJ5f7qMISftv1RKLOz-u1VZu2B0SJQkMXJRpeXdZrQxhSK88iyz3MsIUAxFJgoTpYysqQLBZYYiK90ATpCjUdPc9ypAr3bHhxVVFF-YZxheJDtq2NKzEUqVbXJMm7gHJJZdVxIOycfJlqTy_CA5reQv0A_-nMquL-mQ_AsGYfpHX6QTZ25BmQl-f7IVNls42wmefEcyAvPrLwhVFp7bJvbXbl4QWuXu6Hoz6lWSLmqpDuGXDT_XDKYs23JdXXdNbqiiSV7a_3w8yFsU7rvAFzhUXOi2kFc-4Lm78Q5nr6SWDG0bgfpwXTLd-yJHR47EsxYfsrIW2GRQ2JMk-UCdyHUUtlwOitIweMkF88IZ_UY7DXHlZ2uaOiTQ_xUVBPbZyaD9oFbXY5Sxdc6OWMw1j6dyOaedPRWdROnJ4100c4_nBL7Qg2oiOKnC_bMndenaxG6rZnLlngj83t6o6ymOW6LJaSQa5rVe5RrpuuQDM42Q0yRt3fMgi9IBySqFWVt0epHH1ZVUhJSIN4RRE4jIRDMgumJ1fwCJOTCFaHNRLOu2KYMwa9aqCcBT-LGi6pkuuC_zKm_NxZbS7ItkYRNsFxk9rv1HYw4SbD0FnsOw-4EmvRNnEDm-88kYnGahR95FNvPqjD3NsQBCFzMOOnuDJVOgxu1BlDN8tS5Dm2EFXNpO0-00Zh_nfocJjA4feo6n-HBoeqxeFrHVJK3JtDHUsLrd3aYKIIuVRobtOca-rvwerAOsdCeWiNCKWCIbcThGRXtw_XN_9gdGkV9tPBSjnqRWSJpUJDKK77BghME8hFaeUvaUrotiO0GxEa9e3QxNbkc6Mw_Sk5XRfnSD73l3urbjtOaV70VzILdK32wUwbfXtXH0OSv6Aq3gvDZ21mn1F6vmgWsvtp4u67Z9WO99V7_fneXzx-br2XW_8-vj52xPdWaKlZdv_ujce1U-_XyG-aJb1KdR7eNa9n9NVRWS_W_ZmtWlWzRdPXvkJZZkf5i6SG4ab-mLEtmXTg3uPAGq5ZnOySp3SrfNoodHTIU_qwl7yedmZZTJoluoO6MNTfcO4tiu9jrzrP-U5HKIViG6d_St0X4Ta6Avdf4nLxa-qlwAsn-L-__4MN0CgQN9SVPJ_E1Ent-7N9q3JcqVNSqPUlBLdRBbdWtgylsmFFeNVBWlu1lSEVnqibqseU0jitYdXFGlGkbJGpJ1U36lxuo7dLVXOZTp5XU_yDbz6dhBZgfr9vA2fzSaesuF3WxFV4t5_OTYOELYl87Zd8uF8iPWerJ_Ppa0gllpMD5p958F2zufkZK1ttkRz2uFmsa5w6vy98ill3sttJPQHj5rnjobtqga2eOVKSN9gKiL3vGHLQhuP9m957NmzLvb2HeynXNpwLj7so89yXPbGcj53aqON0ucRmybOTCB7h_GQCK6DLcXpunSkTf1NlpdIUP1zgFamDbjsIe2zNynh_WfwNj_wIA-oy6Cd0rrYqoV75UrY-OACYGZ30VomoOELDemCUhgYQW9x22aAXSumtsggpcF-7YGeCsu3tOtiOshod-DDbG2ssPpzvpgKndOtJfGy7KGNM0O6CoTkdHH9UucLlTWt7LVswPCW4qrKYxKEJlK5pPVW3Zm5YsgtZXfPw4UQ4i9RMWmfBh_XVgFEui6XLYIqhlu8d9aKMXjCG0vgMPBN4F_BbKk5yry9f-BsytaFhf3LjsQV-NCQIkxo9l94IYUuq1gaB8daBdLK-t4D3EpC-bn1ZFhOuQWq0aXxVBpmHRD9DEGQxn3RKq6SxKxy8RPCswqosVlWhsrqn04fQLw2tGlkV13UlK5q2ims9xbFPrwb6qjVUiNpZ-jkKXfd8xWtfcYVsx8eQlN4FRbWDRqv4nqpPfXFksqvqQ2mVq2eiNT2XfYDIq25R6uJXAZIzPZ02KZz0AbZ8I_QBfTavC0ipKN_v19yKLUAvlkPuKCeo37IW1lMPU-nLxcxSVYz-2ZPujqo846TK-p83k1u1hdpTK8OU8HalzF8hDqTshKuLZXsIPQuEYhqur4bGyD3Vr49WEWoekMjVxZXrJra3rX1Vx04SuDLZHnYy3c3aLdQdzNhGPZ_u5oPSQeRuMaSZyxTvD0qRNiwbxy6f4VVsvuUcglRvS-ggEKOGvqmtLCi9XLU54dHo3tOay3RHRcTHSoHV9S5OQ5MbkV85EDVmgXaEY6y9mAjp3cRpowjQg1hZ1C0q61xC2Lwq_z6-albDCLUrEZRXxK-evfir1uIb_sovX_502rv8X4U5uQoX4T6OuYupO-pr1-N-xvZiNyrHHEtFrHG6deMmwnbwA0aonCJePGSQYoRfXeLamRT2OU2-s-V_rsCbDryGiY6ckWmZSPbNcIq_BEpB0SDe-bsNyvkzRaj2r3-LfYMoxWQqffnQioSuq_J_Xf3H2Ki5UvoJhJvqp0So9fXD23d3_vcPPGE-qetPd8jQlg63kBaqHF-kD64oZYjrH0kZwpx-2oI5sDSUU8b021JWoVydFaaDWYvCv1exSDnspGAZf_3EJ78ecWY0pATXECiEB26l52iZBj35QRhKDwFZhoMm9C0B8q-jMOLa6L_LxG39NAA7sngXbDZ_gsNXJsnei2LpP8eugMNJNLkYRVejyeUhIf_8_w&3d) · [Plan source](/examples/hillside-villa.arch)

### corner-cafe.arch

![The plan: corner-cafe.arch, compiled to SVG.](/examples/corner-cafe.svg)

![The 3D preview of corner-cafe.arch, from the same source as the plan.](/3d/corner-cafe.poster.png)

[Download GLB (338 kB)](/3d/corner-cafe.glb) · [Open in the playground (3D)](https://playground.archlang.uk/#z=rZjbbuPIEYbv9RQ_7It4d2SDOvkwg7mYdZAskAALJBPMpdUki2KvW91Ed3Mk78BAHiJPmCcJqpoSKdmrdZLVhSHTVV_XqauKPscnTBbYYpJhDUt6Veeu9bVzJQpV0XsolNpqu4J3bo3KebBQJLJjKATyX8k_8ddHHYu6exqdJyhbjs7hLKFoQ3Rr8vhyfzU6H53jk8ChA-LGIW-1KbVdBWgr8o1RFv_-57-gUHlnI1yF2rWBEGtC0-ZGF9go8xjGfAoUclU8wlWj817uCZa-kkcgSixbJnWGr9UjBcRaRYTG6AhDK50bVvRE2Kin8F4sBX5xlgLksxRrloJa8pFLrLxrG-GGoqayNfSHgNDm0UVlOvMKFyKsw4rcmqJ_EmzpnO-wA6fIRvJBngzDnj9BYTLNMhhS1QeEqKoKnlRRi2wXewEPPs6aJ3z-8W8__ePPPyYb9-nqgrFyrgxiC5yVJ6RC5NgauIZsgLPR8R-O2d2RUMZZ-vDCYufL5Ih37aqGQqEClcJkGW2H9hyz-fjexkH17GyqKugY4DYWxuX507jL9ZEVwq10vHRtZC7LPCGQilx6bFNUxq1awjKq3NAS77AsaqX9Eo3SHkbpkoO_rJxfjk-ZXLiWU8dcLgx2tQtcCqaOSTP0fu0iaLQlXARtH8fH1BDdVxqj8rpc0XcMX6qV0rZL0RLBQYqg0VQQSvL6K4V9bCrnYuO1jVLKS0MrsuUSRoeYaqxWsaj3BlV6G1tPHBZaOa8pQBWxVcY88a0pqPyA5a7MJcBhOTpHKvVEMM75K9wbUhatLckjd7FmFyMa7yptKFyN5Aqe3TtvyeNeVXSGbyOgtWz4ej0CVl6XWGQjoFENeXyawShbhkI1NAJCoQxh8n6SsYh1PtZomxFQ6nWAaqODMkYEh9aOgBSD0Qg4x-Xl5SVCTcZICBrlo47a2SB_-S8_I3SJLj8mJG0jee24KHXxaCkE8AX-hotsnH2Hi8kiy4bfJlmW8W_7b4VxgfAspn7mymu4UHKKGyLbNUa2u-t9qfONsdExNYWBP9LoamVX3dW5Gli7eRiIDoydJGPvdlbeDYx8PtB__E39eXItOTp_BRF-E3EzRNy8gtgUpxiT6c0AIr8MfEkB_nKP0lGAdVEajQTrqKXwQAxrPlQaDwKX7C4nsab1YWhNftKoydCzyUGA-wqV0v1fSvJlhfIs6yrn7E8HkzXdQKTmrcuP_qFzWsWuYLuOpH8hcEK2YimMysng7I8ifIY2UOjCdYRL4RLcIJ-CmzJuxrQd7q8s3NEK7YvWKI7gEXJTiEmMHEZSmJObHbNDfrnveJtiBEm6BEMuz9kPwyv0MhT7WRf7-7APxjVbPx-c9Jck3R23G80s393jNEFk--Hx1k2O4wmqQ5IsoQrvQnjPM6RWXJ7gYQHnUbt8jOA6uJaxxtU73MZsyRqC5M2opFB4nXNvR658vxIEx4BCeWn81lm6OgrDzvB9GNJNHoRhGPC_J-mzY4jshl3WBpcyVcLsGMLSXSRZU61IstffjrRH_S63Q9YgXX4sH7rmGnExX_SXcqPLWKc1TG546vO1tiuCoSoibNJuc8BqVOAtCtxnVcT1jNUTiR1N6paUB9lyj4gO-4Af4Ha1KMRHJnJLHBIPEH359YiUAgEEBsxPAUT4QD3d5N6ju-kJdRE-UN8USdfkovwG3f3SWH50KSaD0-e3i2yQmYOj0nYrlSZjYzpMY3aYxnSya-Ogtjbalm7z_1cXjwRBiS3TroMkO6aHdhyKXi_eLJqNp4veu-n8pOjNW0Unt8flf9KIm-mL23J7ip4d-Dc5aYlkcDbr0XeH0n3adhv_75A2flWVXdRV_Kp6GV0TeAVgr7byU14c0tKlIO8ObK4s5UkHQZe89EJenjW_-mRXV7NuyPCzn4-eAVXrrZZdPOF3qcA7aHwvKRuncL3Dz_xgum-ht1m2ve0b6OdvrDATuXeYPJ-9OGFv88XkbnF4ws1rB8wX2XYuq_mbOdPp4tdB8C6qSFwpwnzuxnNPzskWNceoX0psUTufmq62gaJsVEJdZNlWSroLwA-sfHbA49eP-BovuubS8383OuhsCF1k2ejQLOUfdsN7-FYmnclVFROkO6WFZJpl2-ssS-f2nb3ntU1D_qFQubYUj4mPe-JiZxTnfztbnCB2zf9B1oUDYNfzaLUmG5Ht4LJGJV4_OAYpfs3bX0XdLk6g5M32baDp9Smb0rvx20jzk95tiuOgh53m9G6nKNvjsAaCtsdqPOG6ExcDvef_AA&3d) · [Plan source](/examples/corner-cafe.arch)

### library.arch

![The plan: library.arch, compiled to SVG.](/examples/library.svg)

![The 3D preview of library.arch, from the same source as the plan.](/3d/library.poster.png)

[Download GLB (534 kB)](/3d/library.glb) · [Open in the playground (3D)](https://playground.archlang.uk/#z=rVrrbhs5sv7vpyg4WIy9I2lbV9uZ2QAaW5gYJzfYzuQsDg4sqrtazXWrqSHZkZTZWZyH2CfcJzmoIvsmybIz2fyIJZv8qlj3KvIFjOGfwwDW0O_BApb5LJUhpHKmhd6A0CrPIhAQSh3mqdCgUUQym4NWagH__r9_gU0Qbl9PJnft8bur9t34pzeTW8C1WCxT7By9OHoB3Q5cfrz5ZXIFP0_ev53c3fytA3cJNqGkAQGRzhcvQcCUf0U0U5xCrDRTiVOlNAji5-gFAMB0JdJ0CiqGqdDhFDCaoymXYxamyuQaW_x1KaSGqWfM_EX8mgst80VH6DCZgsysVlEeouk4bGKQ2CHGrt_dXt5c_zS5ApkxVncEa_pvASFmVosUZmLTAqNAWtpgRTbHzIJVINIUYpVrWuGQiWnDx8DPqDfl4qWSmXVysIlGk6g0-sEdnPaHSmeowSxFFmlMDZFKUXxG42BP_tkdwKIHKMLkFGaYqmxODGTKCZgIhkLrDf3GhAlGeYqg1copwwmbyK-0tBYzEB54cv3z6zsQOjSghU2QpCucHOxKgcGFdJsN_84kYomQIUamBRGmcoZaWEw3L_nPIhPpxkiPPdcyghkmMotgGqEJtZwhtNt_Nyqbfmdg6u3OSpVNQQtjUUuDJCMSI8zQrhAzkNbAL5Obu-vLyW3LQRu1w14qNiBgmYjMknklSkdgrBZynlgQoVbGHaGUl8al0pZ_txLpA1jlsKUFYWG4ZrpW5wgpZnObdGDCWA-IS-PV68jIzMgInTZFiIRgrMgiNtcWEXPItODqZvzp-t3PpAsZYWZlKFJAyaJfiQ17ncN2UGwxxITQYYsYE9kGvii1cO7X68Dd64nz0Q5Ml2KJGsY9SIl8KJY4he9hakKRInRf9oJgCrFcY8G_yDJlWQEMDUZ-QXj_zntJAUwHtCgickYBsRYh7-BvwwAWMMtlSt7OZyVypQGqhWEOUpxjFk0dcCzTlIWxEHousw78pGwCVsxIj0IjxHmabiBCLT9j1IJM2UQ6gw9VFst5rtEZnIOFVBrrjU5lbPewZHmmKSTChgm8Hd9Nbq7HbyA3GMHJNFRZqNHWApBJME1dNIkwFnlKThuyg-pKfUuhraTTm1M-K5EjUstUhBiRbG2uES7Hd5Of39_8jbzJQiJIi8tUZGA2i5lKWcursAUzYWTmbfpB2jDB7N7I7KEFocozi7oFsZbRHFtgrPqMHfhoyP-cvRAD7KkkOQjVAg2o3AIulnbj7KPv7GPy3x_eXF9e37lYDZfjN2_a7z_e3ZLWXRBSlvTJn2WKHZhGcgFaRDI38CMJ8jp6BQbnC4pmP2avvCpZ37Q0kmKBFjX8SEq_jl5NwYoHhJ_e372GOaoFWra3CCyuLcRaLVwgT5EhbYIbyMSCTuod8eY8CILykByMkc0jI-MFjXazxMixakDkVk1BpJR4NmA2mU2QzNmwjm5ISw726vr27vrdJUc9OIkwypepDIXFCGYbT-Z7d3KO-jaRBpBcv007fCw1lox4jpbxTytpsEUkkq2iSqxKLVqUYJzbLVSEMMutS3JmyvbApND4wGuFZcGwQ_jcknhtmQTRwkrlaeT5cLF_JW3SkIZZsU2R48atQpIbCJWxhVMV0DJFn99U4ZAk6i-oVVvFsUHL0lGUEUPboh1hQstxLUKbbmCVbErDDCmFaLn0mfzT_dX12_vrd7fXV5MpKF385v0vk5s34w9TqgrqhMieDEXf9-_coaWFBQpK98aZ9RWSI5bygekXleHUsBwjDFOhOW6wncgsRq3JOcnmlsqw_7aqnEmhhcgfvSgMVYaUWgRFZ-MCze0vHLJnG4vtKm6TwMnhbIKLDoxdVNuAiCJazEyZ__nfKajs6MVuCixN2-Qzq6xIYa5VviR2fCnCuaqIpp0jjiDHN76yuqE_vnG13DH8dgSQZyS0xeII4AVMOf0OgynHT-gGwcutCMaS6wUBWXj4UHFDgRD6QcDWL4qYxqA-zE3jNDfJFMRcUGqobeO8A5ROoNPpDAMIldKRzIRFOOn3yKHb0B0Gpx0YuwJBxYzcDWgtWTRxi-ulRk7YwrpESNx5i8_E0gcqF2xnInygGk8VuTztHPnqYxgcAewmxSOAWko8AsiUtgnkyyOA0n2ouuOF9WR2BD7nHDHX7Xa7TVVGHlrOSU4IMoPpQlA1I1IoM02rLnqv4GamafO_I1dFgoz-6uBwTVCcpmT4kJFc-kEAOxTgNzgJWsEpnAyDIKh_YsGf0l_9JyqeEX53h7grir2lzJz8zEtYobGwIjv7R70Ohn8ACv-XTo3T1T1vKE9Y45Us7Dc46Z4VPLlPnpPfGyCMfQCk3y9A3KcSpDzITGy-M-DKPT5KGfd8xZ85J4zK8rIo4pvH0RjfG3j6QOdOso6d8z1HSkSa3mdPA_UGdST_zR9swlnjM2qLa67-V1wYZi74sqm3h4FvMoT1mZPj3UmPTKDVHTEexcfBeRD8ZTQIApCG0QX024P2kCM2ZTbyjKiWklzyc02CMxxfkrpU2IFPIn0o4iutn4xv71y4YIbqhj4Nw9UUdJ4ZZ0ftV9732q-cybVfgVG5TYoMs8ytq9vLtskzbaE3_BOc8O7TFgyDP8EJIbi67Iz-xkCnRV1DKvnOwM3Hdz-Q6DiXUzqTs9widVweWIe-4IebP9sErQCOLMIS22VSscYV_02rYRN7VNVH3Mo5BTuF8G-4DuldnAdB62JEWirqLtJibcWwMrFHVgS9JzCcqXljOIDRI_s7PcSHN9D9K_gshzDqMtha4U2eKxCKMsYXNwL6sAAhTYqgstKhydldZZjKjItHbpJhgVSauV5OFG34VsRisMO-GbS6g2FQRS3_7fd9QOYJoLMG0NmwdPAKKRQx3iMcjDuDQRED3ae9LOEzzuaV4M_nMsUhMPMMsLMG2NkeMGNF_FRobcRAD1ZGxDpYqmazzfPAzhpgZ3vAVuGKZX8Q7KIO5r7tzWSrcPEk2GBYB3PfmhmN6wuxxqIKvbsZ88CmKDm4ZqQiKks3P9AkL9ef8TtTuJTksEYlDWaGWPD1BSH6cLQmBwla4KwSnLDAWRawsHjZplhGXNJq_tFzy3p-b6_hwcw7F00tV9i6BisqS3df7zzj3xHAF-6r3ADz-AP_PPZHcCPG6K-acy1wkLFbaZUHGxxv1pwbIRUzTOF4QpVNFiK8Fml6zHtpRGCAYsoGElcD1mkUg82iESRSjRxbC2cFlXrJflzfcdajHUxwD6kwkWmkkWczVQDh-Rcfhw64Zo0UhC79ju9M1Rkweio_U7PXxHdxy4ur9P0t_H5dXJ8oRY9pl5dVIa7aKG_7ECLGUidl_VYR6e4eQsQ1-BqRSGa7h8D6IRoh7bFDTMRXH4LjTPMQDcPaI6lLeEObjrcP8TiRVXi_2pKUjw1MhI13yDRqRD6pBWY7RFbhLvaiwr54HvbbJvIBbFFiN2IaYw93scdhiMZImlp9ujzexub4wf5urAgfDBzf8s9df_d_d-b7hGu8X2IGBRDtOKcQ1nVFChM3Vmkxxx1_j5sR5UA0ucEYNVI4qRNyvn7W3UOocdQ45pPG8d6DxnHTxs-2bXw0rHHCOPBJ6QfNMYfpqjiW4fb5_NjRKW-w7Z6jSo5194T_cruOC8V5lK3oX9Xsz4_1e6P_i8aVTe0Ghms96ks58wrrxm_UdvjpRckCJVCNPIu1CmYIYW4Z2SZa5fPETSpp1mDKqy-qVcuxSHGX4HI8Uc_DxC_2M2TXxrt-g7ENhsrPBN2gzt8LFO2_UnolNh2Y0DH4Eqvs7twccWN40KSWmPmO238k5SnuN6j8URn45oNthLofgJWMbEKjgmB7m-9J3Tb_he48gsPbmFq2Q633BDXfSrtt_stzqa12qNW3kfNub6Me8L47ctu4peRt7K31baVVaVrje0RfYGiVWyRhk4IINrpfCJlBpPJZI-X7aq2Cddbh5jZm5UZ5VoErTfaqoUzyFcMk0_OK3Uc1WGYl3sr9NKtjWJ109Ig6XOAsthZUBxzMHpet23bvM67bWjQaXjWPs1wc9L7s4Wqd09O7qTMqUn1x4Brp4UFxuaaj2F7fzaTPh3tsw4VQcn-D-rMMnbsaf6NKQbAIne5GUJD7P9D4moxGxc6iHE3DV7UpCjfsNK6xZdNwfW2otJaRvy3kol2tsgZhUMWEkxW9EW72UFlowY3nYkdE3UFlUlR0gUnp1lJTUGsAsagLNIbxbWlDSQ6ibuJVDqiwihOQy_imsF9zmW5vn8uovMkQrqW9b2CMvhrDWYDzGD5T0Yeyx2wJpn4q3tKAcnUagxT9J4l3WPnOLgrt2QZZ7IKcPQWy2AYRezjpBwfOQ3tqKXqeii_01_Y3_aPWV2aRWrGSRrUqwvPhbK9UUnM9abDc8Iz1ve7O-v7B9Rdft77PpeHz-Qlazh6fi18acLW-d3i9bzaeyY93kmBYc5LRk-t79fUH-R_VUt_z9dvIlYf1G-ysP6yvr10_2lm_FUSa6we9J9dXDkVTeq7Zao1eC_iByGzjfvrqj6cVh2reMRiZzVNsU8OAG_-CgOvISIuVgRkNSd2TAvMD3are3o2vb-4_vns7vrt8Pbmauvcjizy10oMw8K85GvfoI4v8QDuWmoYQqLnuMZZqUbqBsq7yYbWwW3B5UTQegyBYc3MQSe2uzzDFz8K6AJXKuLa9H_D286oz7PWCYE3_1cQXS9umK9VvjkcvoJi6-IclunijU4yN-e0OTY1Nix9b8drqpcGML4hTFLp8I7JMJCOHIk2Zy6I54AKqbDVIgnGuM8nXk-51hotbJAEajp_69sq3qbuTIt50_BhO4FrXXinJi2_BOR98Kw6fqxeclzhPnYuAyEbIFYJOZ-gb3gqcvCoug0HLZdfvQcKfoXZsznTrUUXGt93chjZJDA6Q6J5X6OTlLXbvajTiphfbPf4-Kv0dKjUpVUT8EPWi8iQ65bpXI3NXCPyZYL3-14I1RdwEO6_A-n58U2B9kKG7dVdqv6R3lRmheXAhYFATtNNrjRLlKJqnFJSu0DwcPx-q1wuehPoafe2hsMVrd_Rsfe2CjZ4DxsOUmspULIphVM_N2YZVMKEiYX1RdwalNzDDLEyOH4XpnnNuC2pReRsGhZXZ_HEIV459NYR_4VY-IuFsWo4j_FMgrhMYkz6tzyrMSfZrLrVEc0y6LBvsCp-ypS1PyRHqIqhHKEbbv_cR3nwf5HnrP8rbLWq6sfec0S6X4S6FFama59VLQcOPaak5nBLS9GX5HG-peYjlLs-XNik7SualfBNTTJroxbNF3ba5dk8a6DlgdSXvxmPFU7qCjccSlR_i1oLAqKnQDxqXxwc3D0Zfsbn-9LEpc9_S-XeH3UL0HLFYuFXTuas9N5R-Bhxx-Dice4EJz4cb9g7B8UNO-Aq40fk2XANvFT4B1CuAupxFGcn3o38IpR_8J1AGj_PCr2K3fY-nHoX6z4Nv2HzRpPwHDzCsoyz-IMhZ8B8AOX-ck73CcPfchR6Cb9jca1L-g_yPhhWIeA4Hi1oMrnMgGlcPSK8IUxlK667Fy6rdwIlB1wok_lV78e75FHb6iNo7aD-GLg4Q-L-WT5_Ly2Hiw0qboi8vllr9HUP7yNtNXkINXXY_28DxWIfJG-GyJUBELyePe0Fv1A7O292Rqwp-_38&3d) · [Plan source](/examples/library.arch)

## Get it for your own plan

In the [playground](https://playground.archlang.uk), open a plan and switch the drawing from
**Plan** to **3D** (or choose **Tools → 3D preview**, which works with the editor open too). The
preview is built in your browser from the plan on screen, and it is built again when you change the
plan. **Download GLB** in the 3D view writes the GLB in your browser, as the `build` command below
does; the browser does not run the glTF validator, so the command is the way to check a GLB.

From a terminal, with Node 20 or newer, the replay as one HTML file that opens offline:

```sh
npx -y @chanmeng666/archlang-3d view plan.arch --replay -o replay.html
```

And the GLB, for any glTF viewer:

```sh
npx -y @chanmeng666/archlang-3d build plan.arch -o plan.glb
```

`build` checks the GLB before it writes it, and writes nothing when a check fails. Add `--json` to
see each check, and each value the package assumed. The
[package's README](https://www.npmjs.com/package/@chanmeng666/archlang-3d) has every command and
flag, and how to make the replay's video.

## What it shows, and what it does not

3D preview: walls, openings, floors, stairs and furniture in flat colours; no pitched roofs yet, and no sections, elevations or BIM.

- **Shown:** the slab and each room's floor finish; walls from the plan's own joinery, with their
  sills and lintels; doors, windows and glass; curved walls; demolished walls as see-through ghosts;
  every catalogued piece of furniture, in flat colours from the package's own palette; straight and
  turning stairs with their landings; and the storeys, stacked at their heights.
- **The roof** is a flat slab, and it is hidden. Pitched roofs are not built yet.
- **Doors are closed** in the GLB and the replay. `build --doors plan` swings each hinged or double
  door as the plan draws it.
- **Heights are assumed** where the plan does not state them. The core's defaults give a storey
  3000 mm, a door or window head 2100 mm and a window sill 900 mm, and the package assumes the rest
  (a slab's thickness, a piece of furniture's height and mount, a stair's material). The package
  records each value it assumes, and `build --json` lists them under `assumptions`.
- **Not shown:** sections, elevations and construction detail. The 3D preview is a preview of the
  plan, not a design or construction document, and it carries no BIM data and no IFC export.

## How it is checked

- Each GLB on this page passed the Khronos glTF Validator with 0 errors and 0 warnings, and its
  SHA-256 is recorded in [`/3d/manifest.json`](/3d/manifest.json) beside the plan's own hash.
- The same plan and the same versions (core and archlang-3d) give the same GLB, byte for byte. A
  test pins one plan's GLB
  hash, and the freshness check (`npm run gen:3d-assets -- --check`) rebuilds every GLB listed here
  and compares it with the hash in the manifest.
- The package also checks every GLB against the plan before writing it: its nodes are the ones built
  from the plan, each named for its element, and every shell is closed.
- The posters and replays are generated, never drawn by hand. A replay's video bytes differ from
  one machine to the next, so the check compares each poster's frame, not the video.
