Virtual Campus Design

iLRN2026 Virtual Campus design guidelines / template

iLRN 2026 Virtual Campus

[Frame ID + #]    [Frame Name]

(HUB = Hub/High Traffic Frame, CS = Community Space, SP = Special Project, BH = Branch House)

Development & Accessibility Checklist Template

[Campus Location Image or Map]

[Caption or additional information about space]

example: BH-05  Science, Technology, Engineering & Mathematics (STEM)

Frame Type

(ex. Branch House, BH)

Status

OPEN

Track / Branch

(ex. STEM Education)

Capacity

(ex. 50 users)

FrameVR URL

[https://framevr.io/your-frame-url] **see Executive Workbench main spreadsheet

Frame Purpose

[Describe the purpose of this Frame in 2–3 sentences. What is it for? Who is it for? What does it contribute to the campus?]

Frame type context: [Frame type] — [brief description of frame type role and any curatorial notes specific to this track or space.]

1  Ownership & Governance

Frame Lead / Owner

 

Content Contributors

 

Technical Steward

 

Accessibility Reviewer

 

Last Updated

 

2  Learning Design Requirements    + UDL 3.0

[Frame-specific learning design note: Describe any particular learner diversity considerations, engagement challenges, or pedagogical requirements relevant to this track or frame type.]

UDL: [Frame-specific UDL note — describe which UDL principles are most relevant to this track and how the Frame design should respond to them.]

 

Universal Requirements (all frames)

Criterion / Pass Threshold

Purpose statement posted in Frame at entry zone

Visible within 10 sec of entering

Orientation cues for newcomers (what this space is, what to do)

Confirmed by blind test with volunteer

Asynchronous contribution pathway available (forum, Codex, Discord link)

At least 1 async pathway; URL live

Content accessible in text form via Codex (Representation — UDL)

Codex page live and linked in Frame

No color-only navigation cues — all zones/portals have text labels

Confirmed by reviewer

Emotional tone is welcoming; language is jargon-free at entry

Confirmed by a reviewer external to Frame team

 

Frame-Specific Requirements

Criterion / Pass Threshold

[Frame-specific requirement 1 — describe a design or content requirement unique to this frame or track]

[Pass threshold]

[Frame-specific requirement 2 — describe a second design or content requirement unique to this frame or track]

[Pass threshold]

3  Design & Build Checklist

 

Layout & Purpose

Criterion / Pass Threshold

Frame purpose defined in one sentence, posted at entry

Written purpose statement is visible

Environment size matches use case

Appropriate environment selected; not over/undersized

Central meeting / focal area identifiable within 10–15 sec

Walk-through test by the reviewer

 

Navigation

Criterion / Pass Threshold

Minimum 2 outgoing portal links to other Frames

≥ 2 portals; 0 dead ends

Consistent portal visual language (campus-wide asset style)

Matches campus portal standard

Navigation path from entry to any key area ≤ 15 seconds

Timed walk-through by reviewer

All portal destinations confirmed live

Click-tested by reviewer

 

Signage

Criterion / Pass Threshold

All text is legible on mobile screen at default eye level without zooming

Phone screen test

No signage relies on color alone

Label or icon accompanies all color-coded elements

 

Zone Setup (if zones are used)

Criterion / Pass Threshold

'Restrict all assets to zones' enabled if zones are in use

Frame settings → restrict assets = ON

Each zone has a named purpose

Zone names visible in Frame settings

4  Performance & Asset Budget  — check via Frame Settings → Performance Rating or ?debug=true

FrameVR targets: ≤ 200 draw calls · ≤ 130,000 active faces · ≤ 20 materials. FPS target: 60 desktop, ≥ 40 minimum desktop, ≥ 30 iOS Safari.

 

Performance Monitor Readings

Criterion / Pass Threshold

FPS ≥ 40 on desktop (Chrome/Edge)

Target 60; below 40 = must fix

FPS ≥ 30 on iOS Safari mobile

Must pass before launch

Draw call count ≤ 200

Babylon Inspector → Stats

Active face/poly count ≤ 130,000

Babylon Inspector → Stats

Material count ≤ 20

Babylon Inspector → Stats

Performance Rating not flagged RED in Frame Settings

Yellow = caution; Red = block launch

 

Asset Hygiene

Criterion / Pass Threshold

All images compressed before import (squoosh.app)

No raw camera/screen captures

No Sketchfab model imported without poly-count review

Flagged models resolved or documented

Unused assets deleted (not just hidden)

Assets list contains only active assets  Check with the owner of the asset before deletion!!

 

Media Settings

Criterion / Pass Threshold

All videos set to NOT autoplay

Each video asset → autoplay = OFF

Webcam/streaming screens disabled unless live event.

Default OFF; enable only during live sessions

No Smoke particle effects in use

High GPU cost; zero tolerance

Animated objects minimized

Each loop adds ongoing GPU cost

FPS Desktop

 

FPS iOS Safari

 

Draw Calls

 

Poly Count

 

Materials

 

Perf. Rating

 

5  Content & Boards Checklist

 

Codex & Community Links

Criterion / Pass Threshold

Codex page URL embedded as board or link in Frame

BookStack page URL live and linked

Forum / InVision Community thread linked

Thread URL confirmed live

 

Content Boards

Criterion / Pass Threshold

Image board(s) populated with track-relevant content

At least 1 board with real content, not placeholder

Upcoming events board posted and dated

Event title + date visible; past events removed

Showcase zone set up for presenter / author work

Distinct area labelled Showcase or equivalent

Presenter / author content loaded or linked

Confirmed with content owner

 

Conference-Specific Elements

Criterion / Pass Threshold

Greek cultural / scavenger hunt artifact placed (if assigned)

Confirm with George / Greek team

Quest clue placed correctly (if this Frame is a quest stop)

Cross-check against quest master list

Tally.so submission form linked (if track accepts submissions)

Tally form URL confirmed and tested

6  Planned Activities & Events

Activity / Event

Date

Owner

Status

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7  Connected Frames & Portals

Destination Frame

Portal Type

Notes

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8  Asset Inventory

Asset Name / Description

Poly Count

File Size

Owner

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9  Accessibility Sign-Off  — reviewer must complete this, not the Frame owner

 

Wayfinding & Legibility

Criterion / Pass Threshold

New user orients within 10 seconds without prior knowledge

Blind test with volunteer

All text boards legible on mobile at default eye level

Phone screen test

No element identified by colour or spatial position alone

Confirmed with audio OFF

 

Inclusivity

Criterion / Pass Threshold

No flashing or strobing effects

Zero tolerance — photosensitivity risk

Critical content accessible from a stationary avatar position

No movement required to read key boards

Language on all boards is plain and welcoming to newcomers

Reviewed by someone outside Frame team

 

Device & Bandwidth

Criterion / Pass Threshold

Fully usable on Chrome / Edge desktop

Full navigation completed without crash

Usable on iOS Safari mobile

Full navigation completed without crash or major lag

Loads within 30 sec on Slow 3G (Chrome DevTools → Network → Slow 3G)

Slow 3G test completed and passed

 

Sign-Off

Criterion / Pass Threshold

Reviewer name and date recorded below

Required before Frame status = Ready

Reviewed By

 

Review Date

 

Outcome

 

Follow-Up Items

 

10  Codex Integration (BookStack)

Codex Book / Chapter

 

Codex Page URL

 

Last Synced

 

Outstanding Codex Tasks

 

11  Additional Notes & Open Questions

 

Debugging & Performance

Debugging Option_1.png

To view the performance in greater depth (beyond what is built into the regular FrameVR menu), add ?debug=true to the end of any FrameVR URL. 

Once you have done this and refreshed, you will have the option to "Open Inspector," which will show you a panel with various options to help you understand how well the frame is performing in terms of draw calls and more. 

Debugging Option_2.png

About Building in FrameVR + Advanced Interactions

 

FrameVR Technical Capabilities

iLRN Campus Codex — Engine, interactivity, and 3D asset support

Under the Hood: Babylon.js

FrameVR is built on Babylon.js, a powerful open-source 3D rendering engine. However, FrameVR abstracts most of Babylon.js’s native functionality behind its own interface. Users work within FrameVR’s sandbox rather than having direct access to the full engine.

Advanced features such as complex physics simulations and custom scripting are not directly accessible within the platform. Teams should work within the Action Editor and supported asset formats to achieve interactivity.

FrameVR Knowledge Base & Other Info

FrameVR offers many valuable resources for users building on their platform. Here are a few of the options available:

Knowledge Base

Blog

Tutorials

Help Forum (Discord)

Developer API

Interactivity: The Action Editor

FrameVR’s Action Editor provides a no-code interface for adding interactivity to spaces. While limited compared to full engine access, it supports a meaningful range of triggers and responses:

 

         Play Audio — Trigger ambient sounds, narration, or sound effects on proximity or interaction

         Animate Models — Activate animation cycles embedded in uploaded 3D assets

         Show / Hide Objects — Toggle visibility of elements based on user actions

         Open URLs — Link out to external content, documents, or media

         Teleport Users — Move participants to different locations within or between spaces

These tools are well-suited for guided experiences, interactive exhibits, and layered storytelling within a campus environment.

 

Access this tool by entering Edit Mode > Click Asset > Open Action Editor > Set Trigger + Action

ActionEdit2.png

ActionEdit1.png

ActionEdit3.png

 

3D Assets: glTF Format

FrameVR supports glTF (.glb/.gltf), the widely used open standard for 3D assets. Importantly, glTF files can contain embedded animation cycles, which can then be triggered via the Action Editor — making it possible to bring in animated objects (moving parts, characters, environmental effects) without custom code.

         Blender (free, open-source) — excellent glTF export with full animation support

         Sketchfab — browse and download community glTF models, many with embedded animations

         Various online converters for existing 3D models

 

Gaussian Splats: Photorealistic Spatial Capture

FrameVR supports Gaussian Splat files (.ply / .splat), a cutting-edge format for representing real-world spaces with photorealistic quality. Gaussian Splats are captured using photogrammetry-adjacent workflows and rendered as volumetric point clouds, producing immersive, high-fidelity representations of physical locations.

This is a significant capability for campus-building — real landmarks, architectural spaces, or culturally significant sites can be captured and placed directly into a FrameVR environment.

Capture tools to explore:

         Luma AI — mobile-friendly capture, accessible for most devices

         Polycam — supports Gaussian Splat export alongside standard photogrammetry

         Postshot — desktop processing for higher-quality splat results

[DRAFT: Example soon, check back for update! ]

Note: A Gaussian Splat of a nearby landmark is being explored as a demonstration asset for the iLRN campus — a model for how regional teams might contribute place-based content to shared virtual spaces.

Frame Environment Building Options

FrameVR offers three main paths to set up the space inside your Frame. Each works for different skill levels, timelines, and goals — and they can be mixed and matched.

Option 1: Pre-Built Environments

The simplest starting point. FrameVR offers a growing library of ready-made 3D environments — classrooms, auditoriums, galleries, outdoor spaces, and more — that you can select and activate for your Frame with no setup required. These environments are already optimized for performance across desktop, mobile, and VR, making them a reliable choice when accessibility is a priority.

Best for: Meetings, classes, events, and any situation where you need a polished space quickly without customization overhead.

💡  Browse available environments directly inside your Frame settings, or check the FrameVR blog for announcements of new releases.

Option 2: Frame Tile Editor

The Tile Editor (available at tiles.framevr.io) is a drag-and-drop tool that lets you assemble a custom environment by placing pre-made tiles onto a map — no 3D modeling software needed. Once you're happy with the layout, you export it as a .glb file and upload it as your Frame's environment.

Best for: Users who want a custom layout and sense of place without needing Blender or other 3D tools. Great for designing campus-style spaces, custom hallways, or multi-room layouts.

💡  Exported .glb environments from the Tile Editor can also be used in other 3D platforms that support that format.

Option 3: Custom Environments & Dynamic Assets

For maximum creative control, you can upload your own fully custom 3D environment as a .glb file — or use an AI-generated one as your base.

Using World Labs (AI-Generated Environments)

World Labs (Marble) can generate immersive 3D scenes from a prompt or image for your Frame — ancient ruins, modern venues, natural landscapes — which you then export as a .glb and bring directly into Frame as your environment. This is one of the fastest ways to create a space that feels unique and intentional.

Using Your Own 3D Model

If you or a collaborator are working in Blender or another modeling tool, Frame supports uploading fully custom environments with baked lighting, custom navigation meshes, shaders, and more baked directly in.

Layering with Dynamic Assets

Regardless of whether your base environment comes from World Labs or a 3D artist, Frame's Dynamic Asset Library lets you layer functional elements on top — seating, signage, panels, plants, and other objects — directly inside your Frame without re-exporting anything. You can switch seating layouts, rearrange elements, and iterate in real time.

Best for: Events, educational experiences, branded spaces, or any Frame where the environment itself is part of the message.

💡  Dynamic assets from the same model can be duplicated many times without a major performance cost — great for filling seating rows or repeating decorative elements.

For guidance on keeping custom environments accessible across devices, see the Frame Design & Performance Guidelines page in this Codex.

Using Scenes in FrameVR

iLRN 2026 Virtual Campus — Codex

Using Scenes in FrameVR

Draft Areas, Alternate Configurations & Advanced Scene Management

 

Last Updated:  April 10, 2026    |     Maintained by:  Charlene Hardin

Codex Section:  FrameVR Build Documentation

What Are Scenes?

 

Scenes are one of FrameVR’s most useful but least understood features. At its simplest, a Scene is a saved state of your Frame — everything in it, where it is, and how it’s configured. A single Frame can have multiple Scenes, and you can switch between them instantly.

Think of Scenes like different “slides” of the same room. The Frame URL stays the same, but the contents of the space can change completely depending on which Scene is active. Visitors always enter whichever Scene is currently set as the active one.

 

Why This Matters for Building

 

When you’re actively developing a Frame, you don’t always want your work-in-progress visible to everyone who walks in. Scenes solve this by letting you maintain a “live” version of the space while building and experimenting in a separate draft state — all within the same Frame URL.

This means you can iterate freely without worrying about visitors stumbling into half-finished layouts, test new asset placements without disrupting the live experience, and preserve a clean baseline you can always return to.

 

Common Uses

 

       Draft mode — Build and test new layouts or assets in a Scene without affecting what visitors see when they arrive

       Event configuration — Set up a Scene specifically for a live session (with a presenter screen, specific seating arrangement, etc.) and switch back to the standard configuration afterward

       Preservation — Save a clean baseline Scene before making major changes, so you can always revert if something goes wrong

       Seasonal or programming variation — Configure different Scenes for different activities within the same Branch House without needing separate Frame URLs

 

How to Create and Switch Scenes

 

 

 

 

Important: What Carries Across All Scenes

 

Not everything is Scene-specific. Certain elements are persistent across all Scenes in a Frame regardless of which Scene is active.

 

Watch out: Built-in Web Browsers

The built-in web browser is one of the most notable persistent elements — if you have a browser open or configured in your Frame, it will be visible and active in every Scene. Keep this in mind when planning your layout, particularly if you’re using a browser for a specific event or presentation and don’t want it to appear in your standard visitor-facing Scene.

 

As a general rule: if you’re unsure whether an element is Scene-specific, test it in a draft Scene before relying on it in a live configuration. For more information, always consult FrameVR’s Knowledgebase.

 

Things to Know

 

       The Scene that loads by default when someone enters your Frame URL is whichever Scene is currently set as active

       Switching Scenes affects all visitors currently in the Frame — coordinate with your team before switching during a live event

       Asset budgets apply across your whole Frame, not per Scene — a heavily loaded draft Scene still counts toward your performance limits even if it isn’t the active one

 

 

Keep at least two Scenes in any Frame you are actively developing:

 

LIVE

The current visitor-facing version. This is what people see when they enter the Frame. Only update this Scene when changes are ready to go live.

DRAFT

Your active working area. Build, test, and experiment here freely. Keep this Scene clearly named so anyone with build access knows not to set it as active by mistake.

 

Name your Scenes clearly and consistently. Avoid generic names like “Scene 1” or “Scene 2” — use descriptive labels that make the purpose immediately obvious to any team member who opens the Frame settings.

 

Advanced Features

 

Triggering Scene Changes with the Editing Panel

This opens possibilities for guided experiences, event transitions, and interactive storytelling within a single Frame. A persistent navigation element that appears in all Scenes and triggers transitions between them is one practical application.

 

 

Setting Items to Appear Across Multiple Scenes

By default, assets you place in a Frame are associated with the Scene you’re working in. However, when editing an individual item, you can configure it to appear in multiple Scenes simultaneously.

This is useful for elements that should be consistent across several configurations — like permanent signage, a logo, navigation buttons, or a welcome poster — without having to duplicate them manually in each Scene.

 

 

 

Quick Reference

 

Question

Answer

Does the Frame URL change between Scenes?

No. The Frame URL stays the same regardless of which Scene is active.

Can visitors switch Scenes themselves?

Only if you set up an Action Editor trigger they can interact with. Otherwise only admins/builders can switch Scenes.

Do asset budgets apply per Scene?

No. Budgets apply to the whole Frame. All Scenes count toward your total.

Are web browsers Scene-specific?

No. Built-in web browsers are persistent across all Scenes.

Can I make an asset appear in multiple Scenes?

Yes. Edit the item and set it to appear in whichever Scenes you choose.

 

Questions or corrections? Contact the iLRN build team via Discord or the Codex discussion thread.