📚 Agora node [[architecture]] ☆
Agora nodes contain community contributions with titles or topics that match your search. x
📜 File architecture.md by @flancian ☆ 📎 ️🔗 ✍️ ⛶
📜 File architecture.md by @communecter ☆ 📎 ⛶

Architecture§

following this suggestion everything is centered around a MongoDB Database

web instance§

Techno§

PHP framework Yii§

WE are still using php 5.6 php7 will be set up first semester 2021 We still need to switch to Yii 2 it’s in progress

javascriptJ§

we still use the good old Jquery et des centaines de pluggins web /pixelhumain/ph/plugins

MongoDB§

We chose a No SQL database for it’s simplicity et mutability our schemas evolve permenantly and almost dynamically the whole system is in the end à huge collection of well organised JSON documents We try to follow as much as possible common object standards from schema.org

hébergement§

OVH instance type de serveur

stockage BDD§

instance type de serveur

schema de BDD§

costum : personnalisde integrated instance§

json configs, specific designs

use CO and personnalize freely connect it to your own DNS show only the data of your community while continuing to contribute to a common Database

COmobi§

NodeJs, Meteor, CO.api, MongoDB https://play.google.com/store/apps/details?id=org.communecter.mobile&hl=en_US

Oceco Mobi§

NodeJs, Meteor, CO.api, MongoDB https://play.google.com/store/apps/details?id=org.communecter.oceco&hl=fr

Usage de systeme externe et interopérabilité§

nominatim > overpass API api-addresse.data.gouv.fr mediawiki gitlab

Features Technical documentation§

[COstum](./07 - COstum/costum.md)§

[CMS](./04 - Documentation technique/cmsEngine.md)§

[autre](./07 - COstum/CMS - Templates Blocks.md)

[COforms](./08 - COForms/coforms Tech.md)§

[SearchObj](./04 - Documentation technique/process/search.md)§

[mapObj](./04 - Documentation technique/process/mapObj.md)§

Hebergement des COTOOLS§

📜 File en/architecture.md by @communecter ☆ 📎 ⛶

Architecture§

following this suggestion everything is centered around a MongoDB Database

web instance§

Techno§

PHP framework Yii§

WE are still using php 5.6 php7 will be set up first semester 2021 We still need to switch to Yii 2 it’s in progress

javascriptJ§

we still use the good old Jquery et des centaines de pluggins web /pixelhumain/ph/plugins

MongoDB§

We chose a No SQL database for it’s simplicity et mutability our schemas evolve permenantly and almost dynamically the whole system is in the end à huge collection of well organised JSON documents We try to follow as much as possible common object standards from schema.org

hébergement§

OVH instance type de serveur

stockage BDD§

instance type de serveur

costum : personnalisde integrated instance§

json configs, specific designs

use CO and personnalize freely connect it to your own DNS show only the data of your community while continuing to contribute to a common Database

COmobi§

NodeJs, Meteor, CO.api, MongoDB https://play.google.com/store/apps/details?id=org.communecter.mobile&hl=en_US

Oceco Mobi§

NodeJs, Meteor, CO.api, MongoDB https://play.google.com/store/apps/details?id=org.communecter.oceco&hl=fr

Usage de systeme externe et interopérabilité§

nominatim > overpass API api-addresse.data.gouv.fr mediawiki gitlab

Features Technical documentation§

[COstum](./07 - COstum/costum.md)§

[CMS](./04 - Documentation technique/cmsEngine.md)§

[autre](./07 - COstum/CMS - Templates Blocks.md)

[COforms](./08 - COForms/coforms Tech.md)§

[SearchObj](./04 - Documentation technique/process/search.md)§

[mapObj](./04 - Documentation technique/process/mapObj.md)§

Hebergement des COTOOLS§

📜 File docs/advanced/architecture.md by @matthieuG ☆ 📎 ⛶

Quartz is a static site generator. How does it work?

This question is best answered by tracing what happens when a user (you!) runs npx quartz build in the command line:

On the server§

  1. After running npx quartz build, npm will look at package.json to find the bin entry for quartz which points at ./quartz/bootstrap-cli.mjs.
  2. This file has a shebang
  3. Transpiling and bundling the rest of Quartz (which is in Typescript) to regular JavaScript using esbuild. The esbuild configuration here is slightly special as it also handles .scss file imports using esbuild-sass-plugin v2. Additionally, we bundle ‘inline’ client-side scripts (any .inline.ts file) that components declare using a custom esbuild plugin that runs another instance of esbuild which bundles for the browser instead of node. Modules of both types are imported as plain text.
  4. Running the local preview server if --serve is set. This starts two servers:
    1. A WebSocket server on port 3001 to handle hot-reload signals. This tracks all inbound connections and sends a ‘rebuild’ message a server-side change is detected (either content or configuration).
    2. An HTTP file-server on a user defined port (normally 8080) to serve the actual website files.
  5. If the --serve flag is set, it also starts a file watcher to detect source-code changes (e.g. anything that is .ts, .tsx, .scss, or packager files). On a change, we rebuild the module (step 2 above) using esbuild’s rebuild API which drastically reduces the build times.
  6. After transpiling the main Quartz build module (quartz/build.ts), we write it to a cache file .quartz-cache/transpiled-build.mjs and then dynamically import this using await import(cacheFile). However, we need to be pretty smart about how to bust Node’s import cache so we add a random query string to fake Node into thinking it’s a new module. This does, however, cause memory leaks so we just hope that the user doesn’t hot-reload their configuration too many times in a single session :)) (it leaks about ~350kB memory on each reload). After importing the module, we then invoke it, passing in the command line arguments we parsed earlier along with a callback function to signal the client to refresh.
  • In build.ts, we start by installing source map support manually to account for the query string cache busting hack we introduced earlier. Then, we start processing content:
    1. Clean the output directory.
    2. Recursively glob all files in the content folder, respecting the .gitignore.
    3. Parse the Markdown files.
      1. Quartz detects the number of threads available and chooses to spawn worker threads if there are >128 pieces of content to parse (rough heuristic). If it needs to spawn workers, it will invoke esbuild again to transpile the worker script quartz/worker.ts. Then, a work-stealing workerpool is then created and batches of 128 files are assigned to workers.
      2. Each worker (or just the main thread if there is no concurrency) creates a unified parser based off of the plugins defined in the [[configuration]].
      3. Parsing has three steps:
        1. Read the file into a vfile.
        2. Applied plugin-defined text transformations over the content.
        3. Slugify the file path and store it in the data for the file. See the page on [[paths]] for more details about how path logic works in Quartz (spoiler: its complicated).
        4. Markdown parsing using remark-parse (text to mdast).
        5. Apply plugin-defined Markdown-to-Markdown transformations.
        6. Convert Markdown into HTML using remark-rehype (mdast to hast).
        7. Apply plugin-defined HTML-to-HTML transformations.
    4. Filter out unwanted content using plugins.
    5. Emit files using plugins.
      1. Gather all the static resources (e.g. external CSS, JS modules, etc.) each emitter plugin declares.
      2. Emitters that emit HTML files do a bit of extra work here as they need to transform the hast produced in the parse step to JSX. This is done using hast-util-to-jsx-runtime with the Preact runtime. Finally, the JSX is rendered to HTML using preact-render-to-string which statically renders the JSX to HTML (i.e. doesn’t care about useState, useEffect, or any other React/Preact interactive bits). Here, we also do a bunch of fun stuff like assemble the page [[layout]] from quartz.layout.ts, assemble all the inline scripts that actually get shipped to the client, and all the transpiled styles. The bulk of this logic can be found in quartz/components/renderPage.tsx. Other fun things of note:
        1. CSS is minified and transformed using Lightning CSS to add vendor prefixes and do syntax lowering.
        2. Scripts are split into beforeDOMLoaded and afterDOMLoaded and are inserted in the <head> and “ respectively.
      3. Finally, each emitter plugin is responsible for emitting and writing it’s own emitted files to disk.
    6. If the --serve flag was detected, we also set up another file watcher to detect content changes (only .md files). We keep a content map that tracks the parsed AST and plugin data for each slug and update this on file changes. Newly added or modified paths are rebuilt and added to the content map. Then, all the filters and emitters are run over the resulting content map. This file watcher is debounced with a threshold of 250ms. On success, we send a client refresh signal using the passed in callback function.
  • On the client§

    1. The browser opens a Quartz page and loads the HTML. The <head> also links to page styles (emitted to public/index.css) and page-critical JS (emitted to public/prescript.js)
    2. Then, once the body is loaded, the browser loads the non-critical JS (emitted to public/postscript.js)
    3. Once the page is done loading, the page will then dispatch a custom synthetic browser event "nav". This is used so client-side scripts declared by components can ‘setup’ anything that requires access to the page DOM.
      1. If the [[enableSPA option]] is enabled in the [[configuration]], this "nav" event is also fired on any client-navigation to allow for components to unregister and reregister any event handlers and state.
      2. If it’s not, we wire up the "nav" event to just be fired a single time after page load to allow for consistency across how state is setup across both SPA and non-SPA contexts.

    The architecture and design of the plugin system was intentionally left pretty vague here as this is described in much more depth in the guide on [[making your own plugin]].

    📜 File architecture.md by @agora@botsin.space ☆ 📎 ⛶

    Loading pushes...

    ✨ AI Synthesis Mistral Gemini ChatGPT Claude x

    Expanding this section will automatically generate an AI synthesis of the contributions in this node.

    🌌 Agora context for [[architecture]]

    Rendering context...

    📚 Agora node [[8 architecture]] (pulled by the Agora)
    📜 File Artificial Intelligence/Feminist Chatbot/The Feminist Design Tool/8 Architecture.md by @KGBicheno ☆ 📎

    8 Architecture§

    While not strictly feminist, there are intersectional considerations in your choice of architecture such as:

    • content of advertising
    • company use of slave labour or other exploitative corporate tactics overseas
    • environmental damage caused by data centres

    For the full list see [[The Feminist Design Tool]]

    This is part of the [[Feminist Chatbot Main Page]]

    You can also go to the [[Master Contents Page]]

    📚 Agora node [[agora architecture]] (pulled by the Agora)
    📜 File Agora architecture.md by @agora ☆ 📎

    What is an Agora?§

    An Agora is a distributed, goal-oriented social network operating on a cooperatively built and maintained knowledge graph. The implementation you are currently looking at tries to assemble such a graph out of a collection of digital gardens, but other data sources are coming.

    The reference [[Agora of Flancia]] should be live at https://anagora.org .

    Architecture§

    This Agora’s architecture has several components distributed over three git repositories:

    To run§

    To run an Agora:

    Of course you are also free to run your own Agora! To do this, just run the bridge against a local sources.yaml file — or fork the root repository and adjust as wished. As usual please reach out if you need a hand with anything :)

    To join§

    For more information§

    📜 File AGORA_ARCHITECTURE.md by @agora-server ☆ 📎

    Agora Architecture & Protocols§

    This document describes the architectural patterns and protocols used in the Agora, specifically focusing on the interaction between components (Server, Bridge) and external systems (Fediverse).

    1. The Signup Protocol (Client -> Server -> Bridge)§

    The "Join" flow allows users to self-onboard by adding their Git repositories to the Agora.

    Components§

    • Client: The JavaScript frontend (settings.ts, overlay.html).
    • Agora Server: The main Flask application (agora.py), serving as the public gateway.
    • Agora Bridge: An internal microservice (api/agora.py) running on a private port (default: 5018). It has privileged access to the filesystem and configuration.

    Sequence Diagram§

    sequenceDiagram
        participant User
        participant Browser as Client (Browser)
        participant Server as Agora Server (5017)
        participant Bridge as Agora Bridge (5018)
        participant FS as File System
    
        User->>Browser: Enters Username & Repo URL, clicks "Join"
        
        Browser->>Server: POST /api/join {username, repo_url}
        
        Note over Server: 1. Validate Input<br/>2. Construct target path (garden/user)<br/>3. Resolve Bridge URL (config)
        
        Server->>Bridge: POST /sources {url, target, type='garden', format='git'}
        
        Note over Bridge: 1. Read ~/agora/sources.yaml<br/>2. Check for duplicates<br/>3. Append new source<br/>4. Write sources.yaml
        
        Bridge->>FS: git clone <repo_url> ~/agora/<target>
        FS-->>Bridge: (Exit Code / Output)
        
        alt Clone Success
            Bridge-->>Server: 201 Created {message: "Source added and cloned"}
            Server-->>Browser: 200 OK {message: "Success! You have joined."}
            Browser->>User: Displays "Success!" (Green)
        else Clone Failure
            Bridge-->>Server: 202 Accepted {error: "Git error...", source: ...}
            Server-->>Browser: 200 OK {message: "Added, but clone failed. Contact admin."}
            Browser->>User: Displays Error/Warning
        end
    

    2. The Federation Protocol (Content Broadcasting)§

    The Agora acts as an ActivityPub instance (anagora.org). It periodically broadcasts new content to its followers.

    Components§

    • Federation Loop: A background thread in Agora Server (federate_latest_loop).
    • Git Utils: Helper module (git_utils.py) to query git history.
    • SQLite: The database storing federation state (federated_subnodes, followers).

    Sequence Diagram§

    sequenceDiagram
        participant Loop as Federation Loop (Thread)
        participant Git as Git Utils
        participant DB as SQLite
        participant AP as ActivityPub Followers
    
        Note over Loop: Runs every 5 minutes (or 10s in debug)
    
        Loop->>Git: get_latest_changes_per_repo()
        Git-->>Loop: [User: [Subnode A, Subnode B...], ...]
        
        loop For each Subnode
            Loop->>DB: Check is_subnode_federated(uri)
            
            opt Not Federated
                Note over Loop: 1. Render Content (or handle Image)<br/>2. Construct 'Create' Activity<br/>3. Load RSA Keys
                
                Loop->>DB: Get Followers of Author (or @agora)
                
                loop For each Follower
                    Loop->>AP: Resolve Inbox URL (WebFinger/Actor fetch)
                    Loop->>AP: POST /inbox (Signed 'Create' Activity)
                end
                
                Loop->>DB: add_federated_subnode(uri)
            end
        end
    

    3. Bridge Interface Specification§

    The Agora Bridge provides a RESTful interface for privileged operations.

    Base URL: http://localhost:5018 (Internal)

    Endpoint Method Payload Description
    / GET - Status Page. Returns HTML listing configured sources and database stats.
    /sources POST url: Git URL
    target: Path slug
    type: ‘garden’|’stoa’
    format: ‘git’ (default)
    Add Source. updates sources.yaml and triggers a synchronous git clone.

    Generated by Gemini for Agora Docs, 2025-12-14.

    📜 File agora architecture.md by @flancian ☆ 📎 ️🔗 ✍️
    📜 File Agora architecture.md by @agora@botsin.space ☆ 📎
    📜 File agora architecture.md by @agora@botsin.space ☆ 📎
    📜 File Agora architecture.md by @an_agora@twitter.com ☆ 📎
    📜 File agora architecture.md by @an_agora@twitter.com ☆ 📎
    📚 Agora node [[conceptual architecture]] (pulled by the Agora)
    📜 File conceptual architecture.md by @agora@botsin.space ☆ 📎
    📚 Agora node [[federated architecture]] (pulled by the Agora)
    📜 File federated-architecture.md by @vera.wiki.anagora.org ☆ 📎

    Federated architecture (FA) is a pattern in enterprise architecture that allows interoperability and information sharing between semi-autonomous de-centrally organized lines of business (LOBs), information technology systems and applications - [https://en.wikipedia.org/wiki/Federated_architecture wikipedia]

    Architecture areas of concern:

    • Organisational architecture
    • Business architecture
    • Process architecture
    • Information architecture

    This is an approach to the coordinated sharing and exchange of information which is organized by models, which are describing common concepts and behavior.

    Federated architecture. - [https://upload.wikimedia.org/wikipedia/commons/d/d9/Federated_Architecture.jpg wikimedia.org]

    The pattern emphasizes a controlled sharing and exchange of information among autonomous components by communication via messages. Highest possible autonomy shall be given to the different cooperating components. In return they are expected to adhere to common models by using defined interfaces.

    Sections§

    See also§

    📚 Agora node [[internet architecture]] (pulled by the Agora)
    📜 File Internet Architecture.md by @protopian ☆ 📎

    Imagining a better internet

    Personal data hub (home/homepage)

    • local
    • other entities need permission to access
    • customizable
      • Think throwback Myspace in more of a Wix/Squarespace aesthetic
      • modular, take ideas and pages you like, share yours
    • multiple profiles

    One identity

    • authenticate once and use that for all profiles. Related also to keeping your own data and giving access to
    • Can have underlying anon/pseudonymous profiles
    • Unified friendlist

    Credibility Layer

    Notes Layer

    • Codex OS

    Unique Identifiers for Everything

    • Content
    • Individuals

    Communication layer

    • Can change between formats
    • Use friendship list

    Annotation layer

    📚 Agora node [[patterns of enterprise application architecture]] (pulled by the Agora)
    📜 File patterns-of-enterprise-application-architecture.md by @neil ☆ 📎 ️🔗 ✍️

    Patterns of Enterprise Application Architecture§

    📚 Agora node [[stripes in architecture]] (pulled by the Agora)
    📜 File stripes in architecture.md by @maya ☆ 📎

    ashley paine in architectural review:

    …the newly striped house also has a place within a longer history of striped architecture. Usually reserved for important civic and sacred buildings, stripes were employed in Roman times, and have appeared throughout Western architecture ever since. They are most commonly associated with the medieval churches of northern and central Italy, including the spectacular cathedrals of [[Siena]] and [[Orvieto]]. It was this Italian tradition that inspired the polychrome banded masonry of Victorian architecture – celebrated by [[John Ruskin]] and so loved by [[William Butterfield]] and his contemporaries – as well as its frequent use in much Postmodern architecture, most notably that of [[James Stirling]] and [[Mario Botta]].

    …In the southern Swiss canton of [[Ticino]], a region that shares much of its border and culture with northern Italy, there is a strong peasant tradition of striped houses. Painted in bold bands of colour, these houses are decorated not out of spite, but to put on a public display of care and richness on otherwise simple domestic structures – a poor kind of rustication. By contrast, in [[Genoa]], where stripes cover many of the city’s medieval churches, including the cathedral of [[San Lorenzo]], stripes can also be found on the private homes of the city’s most preeminent families, the Doria being foremost among them. Here, the use of stripes as early as the 13th century for domestic purposes was sanctioned by the city, and it is sometimes said to have marked out these families for their honourable civic deeds.

    📚 Agora node [[the art of network architecture]] (pulled by the Agora)
    📜 File networking/The Art of Network Architecture.md by @bbchase ☆ 📎
    • Author:: [[Russ White and Denise Donohue]]
    • Full Title:: The Art of Network Architecture
    • Category:: [[books]]
    • ⥅ [[https://images-na.ssl-images-amazon.com/images/I/51isRNWFK9L.SL400.jpg]]

    • Highlights first synced by [[readwise]] [[September 2nd, 2020]]§

      • A good place to start gathering business intelligence is with a high-level overview of the company, its goals, issues, and future direction. (Location 633)
      • How big is the company—how many users are connected to the network, how many sites, and where are they located? (Location 637)
      • Find out the corporate goals and business strategies. Look for vision statements. Learn where the company is investing its resources—its money, people, time, and technologies—because that shows what is important to them. Look for information on business initiatives planned or in progress, and ask about the drivers for those initiatives. (Location 641)
      • Who are the company’s biggest competitors? How has the competitive landscape changed in the past several years? Which new companies have entered the field and which have dropped out? (Location 677)
      • What has your business done in response to those changes? How and where does the company interact with the information it needs to survive? (Location 682)
      • How well is the application working today? Are there any issues with slowness, or are there other things that might prevent the application from running optimally? How much data does it produce, and what type of data is it? Where does the data need to go? How fast does it need to get there? How important is consistency in the delivery of data? Does the application’s traffic need to be separated from other data, or can it be mixed? Where in the life cycle is the application? Is it just installed, in midlife, or in the process of being replaced? What of the future requirements for those applications? How long will they be in use? (Location 701)
      • Profile of the current network Profile of the current support staff Profile of the current network management, monitoring, and support methods (Location 720)
      • What computing environment are the users accustomed to? How well is this environment serving them and the business? Is there a need for real computing power at the user’s end of the network, or would tablets or thin clients suffice? An increasing number of companies are moving to thin clients due to the easier management and increased security that they provide, but this means they’ll need a network that can deliver the type of service these clients require. Are there proprietary endpoints, and are endpoints static or mobile? For example, hospitals have computers with proprietary applications on carts that might roam throughout the entire hospital. They must always be able to reach their servers and data while maintaining the security of patient information. Retailers might have static proprietary endpoints running proprietary applications, or mobile tablets with a point-of-sale application. All these require different types of network support and perhaps different network security solutions. Is there any compliance checking needed for endpoints to ensure they meet company policies? (Location 741)
      • Are the people who use this network interested in change, or resistant? If a new system is rolled out, will they take to it quickly or take months (or years) to develop an interest? Who are the influential users in this company, and who are the power users? These are the people that can tell you what changes are really needed. And these are the people you will want to include in a pilot of any new network technologies. How do users typically manage their data? Do most users take responsibility for their own data? You may need to design in some sort of network-based backup for users who do not protect or back up their data themselves. Do the users travel extensively or often work from home? How important is it to replicate the “in office” work environment while users are away from their office? How do people within the company communicate with each other and with external partners? How well is this working for them? (Location 760)
      • Network management Modularity Simplicity (Location 842)
      • Shortest Path First (SPF) runtimes (Location 867)
      • If there were always enough bandwidth to transmit every packet offered to the network, there would be less need to control how traffic is transmitted. However, you might still have the problem of a large packet delaying the transmittal of a small packet, and thus introducing jitter into a real-time traffic stream. Additionally, people often forget that even the most granular link usage statistics are but an average. You can have microbursts of data that cause critical packets to be dropped but never show up in your network management reports. So no matter how big your pipe is, or how lightly used you think it is, it might save the day to have at least some basic QoS implemented. (Location 1863)
      • All reachability (for both network nodes and end hosts) is learned in the data plane, rather than being carried through the network in the control plane. (Location 1896)
      • mobility and loop-freeness are built on the back of data plane timers, rather than control plane convergence speed. (Location 1900)
      • How could we make this problem easier to solve? By gathering each device in the network together by purpose or policy, so policies can be implemented along the edges leading to these groups of devices. (Location 2136)
      • the right size for any given failure domain is never going to be the entire network (Location 2169)
      • the right size for a given failure domain is always going to depend on advances in control plane protocols, advances in processing power, and other factors. (Location 2170)
      • Over time, as technology improves, the optimal size for a single failure domain will increase. (Location 2174)
      • as networks increase in size, the optimal number of failure domains within a single network will tend to remain constant. (Location 2175)
      • Stretch, quite simply, is the difference between the optimum path through the network (for any pair of hosts) and the actual path through the network. For instance, if the shortest actual path available is 2 hops, but traffic is flowing along a 3 hop path, the stretch is 1. (Location 2268)
      • Anytime you hide state you increase stretch. (Location 2275)
    📚 Agora node [[visible invisible architecture]] (pulled by the Agora)
    📜 File Visible---Invisible-Architecture.md by @enki ☆ 📎

    Visible & Invisible Architecture§

    A Space of Death and Madness


    Visible & Invisible Architecture§

    A Space of Death and Madness§

    ![](2017-05-02_Visible—-Invisible- Architecture-4c5e59a97709/1*QphIZodTGuRfHpW07BKkjw.jpeg)

    Bas-relief from the entry to Yale’s Sterling Memorial Library, whose structure & style is modeled off gothic cathedrals, showcasing magic symbols from around the world and across history

    Dario Argento’s best-known film, Suspiria , centers itself around a building: the Black Forest Dance Academy in Freiburg. The first film of the Three Mothers trilogy, it sets the formula: three witch-matriarchs, each tied to a magically-powerful building, and each with a coven of thralls around her. These buildings are designed by a man named Varelli, and it is Varelli’s confessions, in the form of a rare book called The Three Mothers, that constitute the primary defense against each witch. Despite this, in Inferno , the second film of the trilogy, we see Varelli — his life unnaturally extended — is now in thrall to his own creation, mute, senile, and unable to resist the will of The Mother of Darkness. Varelli is architect as Faust- figure: contracted by demonic forces to create closed worlds of death and madness, he acts as an unwilling bridge between their mythic realm and the solid world of granite and stained glass, and he is necessarily canny to their nature and plans.

    This same theme is present in two other, otherwise very different films: High Rise (2016) and Ghostbusters (1984). In each case, a brilliant architect creates a space of death and madness that perversely bridges previously- separate worlds, which bewitches its inhabitants and corrupts the architect himself. In High Rise , the only uncorrupted person is the psychiatrist Laing — presumably named for R. D. Laing — who takes limited, active, intuitive control of his environment by painting his apartment a dull grey color and regains his sanity from it. He is notable, however, for his emotional disconnection from the environment. In Ghostbusters , similarly, the uncorrupted figures are emotionally distant and have an engineering- focused approach to the world.

    The idea that architecture can have an essentially magical effect on the world is, therefore, quite mainstream — any idea that appears in popular films across genres must be considered mainstream. The idea of architect as magician is not unknown to occultists (and has proximity to the idea of the genius loci ), and we can also draw connections to psychogeography and the semi- mystical ideas about the power of architecture held by figures like Le Corbusier and Frank Lloyd Wright, but its presence in these stories holds special dimensions and attributes.

    The idea of a perverse house, haunted by its own design or history, is essentially a gothic one. But such a building is created by tragedy (Overlook Hotel, Hill House), madness (Chapelwaite, the Winchester Mystery House), or incompetence (anything on McMansion Hell). Even psychogeography suggests that the influences upon the character of a city are typically unconscious and emergent. What we see in these examples instead is a space engineered to be perverse — something that the Situationists, even with their gnostic tendencies, didn’t predict.

    Did they need to predict it, though? The imposing totalitarian architecture of Albert Speer certainly represents a precedent for the considered and documented engineering of psychological responses via spaces, although this is still closer to Le Corbusier than to Ivo Shandor.

    Instead of trying to compare the Situationists’ unitary urbanism of a nootropic Disneyland to Ruinenwerttheorie, perhaps it’s better to come in from the direction of the occult.

    The idea of a genius loci tied to a figure or line is hardly outside the mainstream; it’s common enough in folklore that it was a staple of early Disney films. A corrupted landscape is associated with the rule of a corrupt figure, as in Sleeping Beauty , The Lion King , & Lord of the Rings. The emergence of a divinely-approved ruler reshapes the landscape favorably & his death darkens it, while conflicts related to that ruler create surreal pocket- worlds full of madness & numinous religious imagery (as in Excalibur & Le Mort D’Artur ). But the power of an architect is not like the power of a king. The corruption of a land by its king is tied deeply to divine blessing: a righteous king makes decisions in line with the will of god, and so the king acts as a repeater and amplifier for god’s will. On the other hand, an architect, like a corrupt king in this system, is always actively creating changes to the world out of line with nature, whether or not it is in line with a correct idea of a better future world.

    It may also be useful to look at alchemy and freemasonry, here. The architect creates a space in the image of his mind and then creates a mind in the image of his space (“we shape our tools and thereafter our tools shape us”), presumably refining the design — smoothing each ashlar, diluting and coagulating. Without invoking the mandate of heaven or some circular justification for calling everything natural, we can hardly say that this careful and mindful practice of self-modification is in line with the mindless and mechanical ‘natural’ flow — it’s a magical act on the spectrum closer to writing a novel than to mowing the lawn, in terms of imposition of will upon the world.

    We can see within the perverse spaces of architect-wizards a shallow anti- masonry, and a distrust of magic in general — perhaps this is true of Argento, who claimed he was inspired to write Suspiria by discovering a Steiner school nearby. But we can also see it as a warning about ungrounded introspection: madness can come from looking too closely at the strange loop in our mind and letting the feedback amplify tiny momentary glitches in our thinking into huge permanent distortions. We can build monuments in stone out of the knots in our heads, if we aren’t careful.

    Once again, High Rise is the odd duck here. Our architect is not really a pawn or an antagonist. He creates a mad space out of a desire to create any kind of new social relation (most of which will necessarily seem mad). Our protagonist is not working against the madness of the space, but instead is merely immune to it. And, finally, the gateway he created did not connect the mundane with the supernatural but instead connected the upper and lower classes in a pathological way — close enough to eat each other but far enough to breed distrust.

    It’s easy to read High Rise as anti-Marxist, anti-utopian, anti-anti- psychiatry, or anti-Spectacle. But in this context, I read it as having two messages, one rare and the other common: social relations, like those created by engineered spaces, are extremely powerful and hard to predict and don’t call up what you can’t put down.

    Tagged in Architecture, Reviews, Movies, Psychogeography

    By Rococo Modem Basilisk on May 2, 2017.

    [Canonical link](https://medium.com/@enkiv2/visible-invisible- architecture-4c5e59a97709)

    Exported from Medium on April 13, 2018.