User guide

How Psiclops works

A practical walkthrough of every part of the app — from your first free U-value check to a finished BR 497 report. Looking for the reasoning behind a calculation method instead? See the FAQ.

Contents
Getting started1D assemblies — built from layers2D assemblies & junctionsReading your resultsPsiclops AssistMaterials LibraryReportsCredits & billingTeams
01 — Start here

Getting started

Psiclops works in projects. A project holds every assembly, junction, and report for one building — a house, an extension, a block.

Create a project from the Dashboard, then use the free U-value and Glaser check at /check to try a wall build-up with no account needed — it's the fastest way to see how Psiclops thinks about a construction before committing to anything paid.

Once you're working inside a real project, every assembly and junction you add lives under that project, and a single generated report can pull all of them together at the end.

02 — Walls, roofs, floors

1D assemblies — built from layers

The layer-based route: describe a construction as a stack of named materials, and Psiclops calculates its U-value and runs a Glaser condensation check — both free, both instant.

Creating one

From a project, choose "+ Add assembly" → "Describe assembly layers". Add each layer with a name, thickness, and thermal conductivity (λ); a Glaser check additionally needs each layer's vapour resistivity (µ) or Sd value.

Layers are entered outside to inside — the first layer you add is the outermost (weather-facing) layer, the last is the innermost (room-facing) one. This matches how the results are displayed too, including the Rsi/Rse surface-resistance rows either side of the layer stack.

What you get

A U-value in W/(m²K), calculated from your actual layer build-up rather than a simplified lookup table, following ISO 6946:2017 §6.2's simple summation method — or, for a bridged layer, the §6.3 combined method described below.

A Glaser interstitial condensation check runs automatically alongside the U-value, at no extra cost. It walks vapour pressure through your layer stack at UK winter design conditions and flags any interface where condensation risk is indicated. A fail doesn't mean the construction is wrong — it means the design needs a second look, or evidence the risk is otherwise managed.

Bridged layers — studs, joists

A timber stud or joist running through an insulation layer isn't just insulation — it conducts heat differently, and treating it as solid insulation isn't accurate for building control or SAP/HEM submission. ISO 6946:2017 §6.3's "combined method" is how Psiclops accounts for this. Add one via "+ Add bridged layer": add each material that makes up the bridge (e.g. timber stud, insulation) using the same entry as any other layer, but skip percentages entirely — enter the block's own thickness once, in line with its own "Bridged layer" heading, since every material in it shares the same depth.

At Calculate, if a bridged layer's materials are missing a width, Psiclops asks for each one's physical cross-sectional width (e.g. 45mm timber stud, 555mm insulation, for studs at 600mm centres) — the percentage each occupies is derived from these automatically, never something you calculate yourself. Condensation risk is checked separately for each material's own path ("at stud", "at insulation") rather than blended into one figure, since moisture doesn't diffuse sideways across a bridge the way heat does.

For bridging more complex than a simple repeating stud or joist — I-joist panels, metal web joists (often sold as posi-joists), or anything the combined method's own accuracy check (shown alongside the result) flags as too imprecise — use the 2D DXF route instead, which runs a full EN ISO 10211 finite element analysis on the actual drawn cross-section.

Air layers and reflective surfaces

Add an air layer with "+ Add air" and pick its heat flow direction. Its λ is never typed — it's derived from the thickness via BS EN ISO 6946:2007 Annex B and recalculated whenever the stack changes around it.

A cavity's resistance depends on the emissivity of the two surfaces facing across it, so a foil-faced board next to one makes a large difference — a 50mm horizontal cavity is R = 0.18 at ordinary surfaces, R = 0.44 with one reflective face. Enter that material's emissivity in its own Emissivity column; blank means BR 497's 0.9 default. Because a stated low emissivity is on one face of the product only, a line appears at the boundary between that layer and the air its reflective side faces, labelled "reflective side". Click it to move the reflective face to the layer's other side. It's shown only while that side is against air, since a reflective face against a solid changes nothing — and it reappears by itself if you later add air on that side.

AI lookup and the Library

Typing a material name (e.g. "mineral wool insulation") triggers an AI ✨ lookup for plausible λ/µ values with a source citation — always editable, never final. The 📖 book icon next to it opens your own Materials Library to reuse a value you've saved before.

Once an AI-looked-up value is in place, a 💾 save icon appears alongside it — one click adds it to your library exactly as drawn, so the next assembly or junction can reuse it via 📖 instead of looking it up again. It only shows for a value that genuinely came from AI and isn't already a saved library entry; picking a material from the library, or editing one you already saved, doesn't need it.

Embedding another Assembly

A repeating build-up you've already modelled — an I-joist bay, a metal-web joist, or any other assembly — doesn't need rebuilding as plain layers. The 🧱 icon next to a layer's name opens "Add from Assembly", listing this project's own completed assemblies and 2D calculations; picking one fills the layer with that assembly's own current effective λ and vapour resistance, re-resolved fresh each time rather than a stale snapshot, and always excluding its own Rsi/Rse.

Build it with element type "Internal" instead of Wall/Roof/Floor/Ground floor whenever it has no genuine external face — either because it only ever appears embedded inside something else, or because it's a genuine internal partition (a stud wall between two rooms, say). Either way it still gets a real U-value for reference, but skips the Glaser condensation check entirely: with no real internal-to-external vapour pressure gradient to check against, a condensation verdict computed on it would be misleading, not just redundant.

When you embed an assembly this way, only its material resistance carries over into the parent layer — its own Rsi/Rse are excluded automatically, re-resolved fresh from its current state each time rather than a stale snapshot. This matters in one specific way: if you've built the same construction as a standalone "Internal" assembly (say, a timber-and-insulation stud zone) and separately embedded it inside another assembly, the two will report different U-values for what looks like the same build-up — the standalone one correctly includes its own surface resistances (both faces genuinely meet room air), the embedded one correctly doesn't (its faces are sandwiched inside the parent construction instead). Neither figure is wrong; they're answering different questions.

03 — From a DXF drawing

2D assemblies & junctions

The DXF route handles anything a simple layer stack can't: real drawn geometry, junctions between elements, and genuine ψ-value calculations.

2D assemblies

Choose "+ Add assembly" → "Upload DXF section", pick what the element is (wall, roof, or exposed floor), then upload a DXF cross-section. The drawing must contain exactly one connected shape, with different materials as separate closed regions.

After upload, assign a material or assembly to every polygon — the "Add from Assembly" picker next to a polygon's material field lists this project's own completed assemblies and 2D calculations, the same picker described under "1D assemblies" above — and a boundary condition (internal, external, ground, adiabatic, ventilated void) to every boundary edge — at least two edges need different non-adiabatic values before the solve can run. An unheated space, such as an integral garage, is tagged "external" directly — BR 497 models it as fully exposed to the external environment, not as its own separate condition.

This runs the same finite element solver as a junction, producing a U-value plus both condensation checks (see "Reading your results" below) for geometry a simple layer list can't represent.

Junctions (ψ-value calculations)

Choose "+ Add junction", tell Psiclops whether the drawing is a plan or a vertical section (this genuinely affects how the junction type gets classified), then upload and assign materials/boundary conditions exactly as for a 2D assembly.

The solver derives a ψ-value and fRsi from first principles on your actual drawn geometry — not looked up from a table. Psiclops also suggests which SAP Table K1 reference your junction matches, using your drawing's own geometry first and an AI pass only to break a genuine tie — you confirm or override the suggestion before the calculation runs, so results are never shown against an unconfirmed guess. To correct a junction type on an existing calculation later, use "Edit" to revisit its materials and boundary conditions — this re-runs the same classification (with whatever type is already confirmed shown first) before resubmitting.

A party wall junction has its declared ψ automatically halved per BR 497 §4.4.3 when the geometry indicates a real party element, with the pre-halving figure and citation both carried through to the report.

Air spaces and reflective surfaces

Add an air space with "+ Add air" and choose what kind it is: a CAVITY is part of the construction and connected to other air, such as a wall cavity; a DIVIDED air space is genuinely sealed inside the construction, such as a void within a box lintel. The two use different equations in BR 497 §2.4 and nothing in the drawn shape distinguishes them, which is why it's a choice. The direction you pick alongside it — horizontal, upward or downward — is the local heat flow within that space, and sets only its convective coefficient. The junction's own principal heat flow, which governs how an irregular space is transformed into an equivalent rectangle, is worked out from your boundary conditions and never asked for.

If any material in the drawing has an emissivity below 0.9, a "Reflective surfaces" step replaces the boundary conditions panel once everything else is assigned. A stated low emissivity belongs to one face of a product — a foil-faced board is reflective on one side only — and no drawing reveals which side, so Psiclops asks. Candidate lines are those with air on one side and the low-emissivity material on the other: the reflective one is drawn red, alternatives blue, and clicking moves it. Where a material has just one face against air, that face is the answer and nothing needs choosing. The same panel lists what each air space resolved to — both emissivities, the method applied, d, R and λ — so you can check the figures before continuing, including against a published worked example.

On a drawing with no low-emissivity material the step never appears at all.

Covering another reference with an existing model

When one modelled junction's result genuinely also applies to another SAP Table K1/K2 reference — a rooflight's head/sill/jamb/upstand all being one physical detail, a mirrored eaves on the opposite roof, or a justified conservative bound — choose "From existing" from the "+ Add junction" popup instead of drawing and solving a second time. Pick the already-modelled junction, the reference it covers, and a reason from the fixed list provided (with an optional note alongside it); nothing is drawn or solved, and the covering entry always tracks the source's own result, so a later edit to the source is reflected automatically.

The reason and note can't be edited afterwards — delete the covering entry from the project page and add it again if you need to change them. Deleting the source junction itself deletes everything covered by it too, and you're warned explicitly before that happens.

Ground-floor and basement wall/floor junctions

Draw and tag normally — there's no separate mode. Tag the boundary edge where the construction meets the ground "Ground" (solid or suspended ground floor) or "Ground (basement wall/floor)" (basement), the same way you'd tag any edge "Internal" or "External".

Psiclops applies BR 497 §4.7's own convention automatically once it sees that tag: your drawn construction is extended to BR 497's fixed model dimensions (a ½b = 4m floor extent, and for a basement, h_Bw = 2.4m of wall) and set into a soil block sized per the standard's own fixed extent, before the solve runs. You never draw the soil, and the fixed dimensions aren't a setting you can change — they're the standard's own convention. The "Modelled construction" card on your results page shows this extended construction and generated soil, cropped by default to your own real drawn extent so the construction detail stays legible rather than being dwarfed by the generated soil block (which can be tens of metres across); the temperature-field image elsewhere on the page shows the full generated soil with BR 497's own fixed model dimensions (b, ½b, the 2.5b soil extent, and the 150mm below-floor step) labelled directly — click its small inset thumbnail to swap between the two views.

For a suspended floor, draw the underfloor void as a real polygon using the material name "Underfloor void (ventilated)" exactly — Psiclops excises it and replaces its footprint with a calculated underfloor temperature (ISO 13370 Annex G) derived from your drawing's own real design temperatures.

Cost

Your first ψ-value calculation (2D assembly or junction) is free. Every one after that costs £10 (one credit). U-value and condensation results on a 2D assembly are included at no extra cost, same as the 1D route — though on a 2D assembly the interstitial check is the field-wide 2D method described under “Reading your results”, not the 1D Glaser layer-walk.

04 — Understanding output

Reading your results

Every result page shows the headline number (U-value or ψ-value), a colour thermoplot of the solved temperature field, and — for a 2D assembly or junction — the As-Drawn diagram: your actual geometry in its real material and boundary-condition colours. A separate Mesh card shows the real solver triangulation as a QA check (element/node counts, and whether BR 497 §2.6's own refinement-convergence test passed), with its own zoomable image.

Every result image supports mouse zoom and pan — scroll to zoom in on the cursor's position, drag to pan once zoomed, double-click or the "Reset zoom" button to return to the full view. Once zoomed, a small overview inset shows where the current view sits within the whole image (toggle it off with the icon button if you'd rather not see it). On a ground-floor or basement junction specifically, where the real construction detail and the generated soil block sit at very different scales, the image defaults to a dedicated close-up of the construction detail with a small clickable thumbnail in the corner — click it to swap to the full extent (soil included) and back.

Two different condensation checks — not the same thing

Surface condensation risk compares the coldest point on the internal-facing surface against the dew point — a thermal-only check, always available, no vapour data needed.

Interstitial condensation risk checks for condensation forming within the construction itself. On a 1D assembly this is the classic Glaser layer-walk. On a 2D assembly or junction it's a genuinely 2D check: a second finite element solve using vapour resistivity in place of thermal conductivity, comparing the solved vapour-pressure field against saturation pressure at every point in the mesh — not just fixed layer interfaces. The worst point is marked on the plot and named — the interface between two specific materials, or well within one — not just a bare coordinate. It needs a vapour resistivity (µ) or Sd value on every material; if even one is missing, the check is skipped with a clear message naming which material needs it, rather than guessing.

Junction-only figures

fRsi (the minimum surface temperature factor) is compared against 0.75, the BRE IP1/06 minimum for dwellings. ψ is also compared against the SAP Table K1 default for the confirmed junction type, so you can see at a glance how much better (or worse) your bespoke detail is than the conservative fallback a SAP assessor would otherwise have to use.

Assessment Profiles

Every calculation and piece of AI guidance in Psiclops — from Table K1 comparisons to Psiclops Assist's own suggestions — is built against a single governing "Assessment Profile": today, that's BR 497 / SAP 10.3 (UK). Compliance checks are run programmatically against that profile's own defined rules rather than left to judgement, and Assist's guidance is kept consistent with it too. Additional profiles (HEM, Passivhaus, DEAP) are planned for the future.

05 — AI-guided review

Psiclops Assist

A conversational review of a finished result, tailored to what kind of calculation it is. Open it from the "Psiclops Assist" button on a project page and pick the item to discuss.

1D assemblies — workshop mode

Assist can actively rearrange your layers: work toward a target U-value, resolve a Glaser fail, or recommend and trigger an annual condensation run — a full-year moisture-accumulation check (BS EN ISO 13788 Annex C) rather than one worst-case winter snapshot, useful when a construction fails the standard check but may dry out safely over summer. If your project has a site address, the analysis runs against a real location-specific climate normal for those coordinates, and that run is the compliance basis; the standard's fixed UK-wide reference climate is run alongside it, clearly labelled, so the nationally comparable figure is still there to check against. Where no location can be resolved, the fixed reference climate is used on its own. No extra charge beyond the Assist session itself. Every suggestion goes into a running tally before you apply it — nothing changes until you say so.

2D assemblies & junctions — diagnostic mode

Geometry is fixed by the drawing, so Assist doesn't rearrange anything — instead it explains the result and suggests material-level swaps (an existing material's λ or vapour resistivity). Junctions are scoped to the flanking elements' own U-values, since there's no equivalent "target ψ" the way there's a target U-value for a wall, and Assist won't start on a junction whose SAP Table K1 type hasn't been confirmed yet.

When you apply a suggested change, Assist shows the real, recalculated impact from the actual FEM solve — never a number the AI merely stated in prose.

Every session

A running summary keeps a cumulative recap of the whole conversation, so a suggestion you discussed and moved past isn't lost the way a simple "latest changes" list would lose it. A session costs 1 credit, charged only once a real reply has actually been generated — never on a failed attempt or on simply opening the page.

06 — Reusable materials

Materials Library

Save a single, flat material once, and reuse it across any assembly or junction via the 📖 book icon next to any material field. Manage the full list, filter by name, and edit or delete entries from /materials. For a reusable multi-layer construction instead — a repeating I-joist or metal-web bay, say — build it as its own Assembly (pick "Internal" as its element type if it's never directly exposed on its own) and embed it directly wherever it's needed via the "Add from Assembly" picker, no separate library entry required.

Every material shows a provenance label: user-supplied, a manufacturer datasheet, ISO 10456, BR 443, or "Unverified" for an AI-suggested value with no traceable citation — shown deliberately so an unverified figure is never mistaken for a checked one. A material also carries a free-text Provenance field you control directly, so correcting a value (e.g. a manufacturer revising a published figure) doesn't have to lose the citation behind it — or upload the product's own datasheet PDF via the 📄 button next to AI lookup, and Psiclops reads it directly to fill in name, λ, µ/Sd and colour where it can, keeping the document itself as the cited source even when nothing could be auto-filled.

Deleting a material checks first whether it's still in use — as a layer in an assembly, embedded inside another material, or applied to a 2D assembly or junction — and blocks the delete with a message naming exactly where, rather than failing silently or leaving another calculation pointing at nothing.

07 — For your SAP assessor

Reports

Generate a project-level report from the "Report" button on any project page. It compiles every assembly and junction in the project into one BR 497 compliant document: calculated values, isotherm plots, boundary conditions, an AI-generated narrative describing each construction, a competent person declaration, and a Material Sources appendix listing where every material's values came from.

A junction covered by another's result (see "Covering another reference with an existing model" above) is folded into its source's own section — the heading lists every reference it covers, and a short Coverage note states the reason and any added detail. A Junction ψ-Value Summary table lists every reference addressed in the report this way, but it's scoped strictly to what's actually included — not a substitute for a full SAP 10.3 Table K1 compliance schedule.

Up to 5 reports can be saved independently per project, so you can keep a snapshot before a design change without losing the earlier version. An optional architect verification add-on is available — a qualified architect confirms the submitted geometry and materials are accurately reflected in the report (not a re-run of the physics, which is independently validated against EN ISO 10211 reference cases). Architect verification is priced in credits, with a real £ figure shown before you request it rather than a bespoke quote.

08 — Pricing

Credits & billing

U-value and Glaser checks are always free — no credit, no account required for a first look via /check. A ψ-value calculation (2D assembly or junction) costs 1 credit (£10), with your very first one free. A Psiclops Assist session costs 1 credit. The AI brief-analysis card on the free check page is free, like the check itself — no credit and no account.

Buy credits from /credits — enter a quantity and you're redirected to a secure Stripe checkout; your balance updates as soon as payment is confirmed, and a full history of every credit earned or spent is kept on the same page. Credits don't expire.

09 — For practices

Teams

A team shares one project library and one pooled credit balance across everyone on it. It's free to create — you only pay when the team actually needs credits.

Creating a team

From the homepage pricing section, switch to the "Teams" tab and choose "Create a team" — you'll be asked to sign in first if you aren't already. A brand new team starts completely empty: nothing from your own account moves into it automatically. What ends up in a team is always something a member deliberately put there (see "Sharing your work with a team" below), never a side effect of joining or creating one.

Only one person can own a team at a time (whoever creates it, initially), and a person can only ever be on one team — you can't create or join a second one while already a member of another.

Signing in as yourself or as the team

If your email belongs to a team, the sign-in screen offers a choice right where you enter your emailed code: leave it as-is to sign in acting as the team (the default — you'll see the team's shared projects, materials, and credit balance), or switch it on to sign in acting as yourself instead, exactly as if you weren't on a team at all. Whichever you pick stays in effect for that whole sign-in — it won't silently switch back partway through your session.

The TopBar's team name and "Team" link only appear when you're actually signed in as the team for that session — signing in as yourself looks and behaves like an ordinary individual account, even though you're still a team member underneath. To switch which one you're acting as, sign out and sign in again with the other choice.

Sharing your work with a team

Content never moves into a team on its own — it's always an explicit copy you choose to make, and the original in your own account is left completely untouched. From the Team page's "Copy your content to the team" panel, pick any of your own projects, assemblies, calculations, or materials — in any combination — and copy them in with one action. Whatever a picked item needs comes along with it automatically: an assembly brings the materials its layers use, a calculation brings its flanking assembly (if it has one) and any materials it references, so nothing you copy in ends up broken or missing a reference.

Any team member can do this with their own content, not just the owner. A single assembly or calculation copied on its own (rather than as part of a whole project) lands in a team project named after wherever it came from — reusing one that's already there from an earlier copy, or creating it fresh the first time.

Members and roles

The owner can invite anyone by email from the Team page — they'll get an email and can sign in to join. Only the owner can invite, remove a member, buy credits, or rename the team; every member can see the full member list, everyone's recent activity, and use the copy-to-team picker for their own content.

Ownership can be handed to any other member at any time from the member list. A member who isn't the owner can leave whenever they like; the owner can't leave while anyone else is still on the team — transfer ownership to someone else first.

Leaving as the last member

Once the owner is the only person left, leaving deletes the team outright — there's no owner to hand it back to, and content only ever got there via an explicit copy in the first place, so there's nothing to move out again. Anything created directly under the team itself, rather than copied in from someone's own account, has no copy anywhere else and is genuinely lost when the team is deleted; you're warned about this plainly before confirming.

If the team still has an unused, real (paid-for) credit balance at that point, it isn't simply discarded or handed to the departing owner — it's queued for review and refunded to whoever actually paid for those credits, the same careful, human-approved process used for a closed individual account. Free credit that was never paid for isn't refunded, same as anywhere else in Psiclops.

Ready to try it?

Your first U-value, Glaser check, and ψ-value are free. No card required.

Get started free →