other
16 TopicsHospital Ops Dashboard
Building operational dashboards with recommended actions and custom UI is easier than ever with Fabric apps! In this example Fabric app, you see a nurse staffing dashboard to help hospital admins to manage understand where they are understaffed and recommended actions. In the detailed view you see custom UI to help manage coverage across shifts and custom tooltip with action to request overtime shift.33Views0likes0CommentsMatcha Ops Dashboard
With Fabric apps it's easier than ever to build custom dashboards that can both analyze data and writeback to the source! Here in this example Fabric app, you see a fully custom dashboard analyzing the matcha sales with a breakdown of the top selling drinks: Within the same Fabric app, you can see the latest inventory and mark which drinks are sold out without having to go to a separate tool:43Views0likes0CommentsParagliding Insights: two Bavarian flying sites as 3D twins
Oberstdorf and the Nebelhorn in the Allgäu Alps, and the Tegelberg above Schwangau in the Ammergau Alps, both at true scale from official 1 m terrain, with real flight tracks and live glider traffic drawn over them. What it does Photoreal 3D terrain built from official 1 m elevation data Two sites, switchable from a dropdown: Oberstdorf / Nebelhorn, and Tegelberg / Schwangau with Neuschwanstein below it. The area of interest is configuration, not a set of constants, and a second site is what makes that claim checkable Real IGC flight tracks, anonymised at import, with a height trace you can scrub Live traffic from the Open Glider Network Notebooks and pipelines behind it, the Fabric App in front What it deploys into your workspace Entra sign-in (Fabric identity) Static web app Data Official Bavarian elevation data and the Open Glider Network. Demonstration and training only, not flight preparation. Credits Terrain and buildings: Bayerische Vermessungsverwaltung (LDBV), CC BY 4.0. Required attribution, verbatim: Datenquelle: Bayerische Vermessungsverwaltung – www.geodaten.bayern.de [Daten bearbeitet] Coarse terrain shell: © DLR e.V. 2010–2014 and © Airbus Defence and Space GmbH 2014, 2018 provided under COPERNICUS by the European Union and ESA; all rights reserved. © OpenStreetMap contributors (ODbL) Live glider traffic: Open Glider Network (ODbL). Data older than 24 hours is not redistributed, and OGN privacy choices are honoured. Full detail: NOTICE.md. Try it git clone https://github.com/KornAlexander/Fabric-Apps.git cd Fabric-Apps/games-and-learn/paragliding-insights npm install npx rayfin up --workspace-id <your-workspace-guid> --tenant <your-tenant-guid> Source, and always the latest version: https://github.com/KornAlexander/Fabric-Apps/tree/main/games-and-learn/paragliding-insights How it is built: https://kornalexander.github.io/Fabric-Apps/apps/paragliding-insights/ It is part of an open-source gallery of Fabric Apps: 3D twins, live maps, admin tools and a few games. https://kornalexander.github.io/Fabric-Apps/39Views0likes0CommentsHarbour Pulse: live Sydney ferries on a photoreal harbour
A photorealistic 3D map of Sydney Harbour rendering live ferry positions out of a Fabric Eventhouse, with a voxel digital twin of any vessel you click. What it does Live positions polled from Real-Time Intelligence every few seconds Three ways to draw the world: Google Photorealistic 3D Tiles via Cesium ion, NSW Government aerial photography, or plain OpenStreetMap A free-flight drone camera over the harbour Click a ferry for a full-screen voxel twin with decks Pre-departure operator checklists in Fabric SQL What I added, and how this differs from the original Harbour Pulse is Fran Genoa's, and it is a lovely piece of work: the design, the voxel vessel twins and the Real-Time Intelligence architecture are all his. I forked it because I liked it enough to want to fly around inside it, and added two things, both of which are in this copy. A drone camera. The three.js free-flight control model used across the other twins in this gallery, rewritten against the Cesium camera API rather than copied. It latches rather than toggles: press W A S D Q E to fly and it hands the camera back after about a second of idle, so there is no mode button to find. Speed scales with height above ground, and a heads-up display shows altitude, height above ground, speed and heading. The fiddly part was a zenith guard: Cesium has no maxPolarAngle, so a long drag sails over the top and leaves the camera silently inverted. A pre-render guard holds the last legal pose. It works without an API key. Originally the photoreal view needed a Cesium ion token, and without one you landed on a flat OSM photograph. Sydney publishes no open photogrammetric mesh, so instead of a mesh the keyless modes get a world baked at build time: a terrain height grid from AWS Open Data Terrain Tiles behind a custom terrain provider, 12,529 OpenStreetMap building footprints with roof colour measured from the NSW aerial imagery, and 8,795 real mapped street trees seated on that terrain. It now defaults to ion when a token exists and to the NSW imagery when it does not. Two details that took the longest and are invisible when right. Heights are stored above sea level and offset by the local geoid, roughly 23 m, which is what keeps the ferries floating on the water rather than 23 m under it. And the buildings and trees render as batched primitives rather than one entity each, which is fine at 1,700 and hopeless at 12,500. Nothing is fetched from a third party at run time any more. The Overpass API had failed this app four separate times, twice mid-demo, each time leaving the city as a flat photograph, so the runtime lookup is gone and the data is committed to the repository. What it deploys into your workspace Entra sign-in (Fabric identity) Fabric SQL database Static web app Data Transport for NSW open real-time feed. Credits Harbour Pulse is Fran Genoa's project. The upstream repository is FranGenoa/fabric-harbour-pulse and the design, the voxel vessel twins and the Real-Time Intelligence architecture are his work. This entry exists with his name on it, not instead of it. What I added on top is described above. Ferry photographs come from Wikimedia Commons and remain under their original licences. Every image is credited individually, author, licence and source page, in ATTRIBUTION.md, because those licences require it. Live vessel positions: Transport for NSW open real-time feed. Base map: Google Photorealistic 3D Tiles and Cesium OSM Buildings. Keyless modes: NSW Government aerial photography (CC BY), terrain from AWS Open Data Terrain Tiles, buildings and trees from OpenStreetMap (ODbL). Attribution for these is always visible in the app. Licence: MIT. Copyright (c) 2026 HarbourPulse contributors. Try it git clone https://github.com/KornAlexander/Fabric-Apps.git cd Fabric-Apps/industry/harbour-pulse npm install npx rayfin up --workspace-id <your-workspace-guid> --tenant <your-tenant-guid> Source, and always the latest version: https://github.com/KornAlexander/Fabric-Apps/tree/main/industry/harbour-pulse How it is built: https://kornalexander.github.io/Fabric-Apps/apps/harbour-pulse/ It is part of an open-source gallery of Fabric Apps: 3D twins, live maps, admin tools and a few games. https://kornalexander.github.io/Fabric-Apps/74Views0likes0CommentsCampus Twin: a timetable planner's cockpit on a photoreal 3D campus
Every teaching session placed in a real room, in a photoreal 3D model of the campus built from official state survey data, so an over-full lecture hall is something you can see rather than infer from a table. What it does The campus is not a picture of a campus. 1 m state terrain under a 20 cm orthophoto, LoD2 buildings that open into their own floors, and real trees, at true scale Eleven sites in one build, from Bavaria to North Rhine-Westphalia and Baden-Wuerttemberg, each through its own state survey portal but the same pipeline Conflict detection on hard constraints: a room too small for its cohort, a lecturer in two places, a walk between consecutive sessions nobody can make Cascade what-if: move a session and watch what else moves, before committing anything A CP-SAT solver (OR-Tools) proposing the smallest set of moves that repairs the week, rather than a rebuilt timetable nobody recognises An assistant that answers in the planner's language and hands back a proposal you confirm, never an action it took on its own Lenses for occupancy, staffing and quality, each answering a different person's question What it deploys into your workspace An Entra app registration for sign-in A Fabric SQL database holding the plan: proposals, confirmations and per-lecturer availability A static web app for the client The data, and what is deliberately not here Terrain, orthophotos, LoD2 buildings and trees come from the German state survey authorities as open data: LDBV Bavaria, LGL Baden-Wuerttemberg and Geobasis NRW, all CC BY 4.0. Building footprints and room geometry come from OpenStreetMap under ODbL, and elevation from Copernicus WorldDEM-30. The exact attribution each licence requires is reproduced verbatim in NOTICE.md. No university's own timetable export is included, and that is enforced rather than promised. config/release.json is a single switch read by both the app and the Python pipeline, so a site cannot be withheld from one and survive in the other. In this repository it stands at realCustomerData: exclude and navigatumData: synthetic, which means every timetable you see is generated from an academic profile and reproducible from configuration. Two checks fail the build if that stops being true: npm run check:release and python tools/verify_publishable.py. The lecturers are invented too, from a per-site pool of ordinary regional surnames, because a demo dataset must never read as a roster of real staff. Credits The survey authorities prescribe the wording of their attribution, so it is reproduced exactly as they require, not paraphrased: > Datenquelle: Bayerische Vermessungsverwaltung – www.geodaten.bayern.de [Daten bearbeitet] > Datenquelle: LGL, www.lgl-bw.de, dl-de/by-2-0 > Datenquelle: Land NRW (Geobasis NRW), dl-de/zero-2-0 > Datenquelle: Geoportal Berlin, Land Berlin, dl-de/zero-2-0 Bavaria under CC BY 4.0; Baden-Wuerttemberg under Datenlizenz Deutschland Namensnennung 2.0; North Rhine-Westphalia and Berlin under Datenlizenz Deutschland Zero 2.0. The horizon shell at every site is Copernicus DEM GLO-30 under the Copernicus free licence. Building footprints and room geometry are OpenStreetMap contributors, ODbL. Full per-site detail is in NOTICE.md. Everything else here is mine. It is a personal project, not a Microsoft product, and not affiliated with or endorsed by Microsoft. Try it git clone https://github.com/KornAlexander/Fabric-Apps.git cd Fabric-Apps/industry/education/campus-twin npm install npx rayfin up --workspace-id <your-workspace-guid> --tenant <your-tenant-guid> Source, and always the latest version: https://github.com/KornAlexander/Fabric-Apps/tree/main/industry/education/campus-twin How it is built: https://kornalexander.github.io/Fabric-Apps/apps/campus-scheduler/ It is part of an open-source gallery of Fabric Apps: 3D twins, live maps, admin tools and a few games. https://kornalexander.github.io/Fabric-Apps/38Views0likes0CommentsHelsinki Public Transport: a live map on Real-Time Intelligence
Every tram, bus and metro in Helsinki, moving on a 3D map, fed by a Fabric Real-Time Intelligence stack: Eventstream into an Eventhouse, a semantic model over KQL, and the app querying it with the signed-in user's own identity. What it does Live vehicle positions from the public HSL feed Eventstream → Eventhouse → semantic model, all inside Fabric End-user SSO on the Kusto datasource, so every user queries as themselves A 3D city view on the City of Helsinki's textured LoD2 buildings, with a free-flight camera An hourly producer notebook that holds no secrets, it resolves the connection at run time What I changed, and how this differs from the original This is a rebuild of Kevin Thomas's Helsinki real-time transit solution, and the ideas that make it work are his: the Real-Time Intelligence architecture, and the Fabric portal host bridge that queries the semantic model as the signed-in user so nobody is asked to sign in twice. His vehicle detail panel and his per-vehicle operator notes were better than what I had, so I use them here too. What is different here: A 3D city twin that needs no keys. The live fleet on the City of Helsinki's own textured LoD2 buildings, with Ion.defaultAccessToken left empty and every layer pointed at a City of Helsinki endpoint. No Cesium ion account, no Google Maps key. Vehicles are clamped to the same terrain the buildings sit on, so at street level they stay on top of the roads rather than sinking through them. It also runs outside the portal. The host bridge is the best path when the app is embedded, because the portal runs the query as the signed-in user and nothing asks for a second sign-in. But there is no host outside the portal, so DAX now goes through a chain of three transports: the host bridge first, then the Rayfin fabric-semanticmodel connector, then a delegated Power BI token acquired with MSAL calling executeQueries directly. The middle one is currently an unreleased API that answers "ConnectorFunction invocation is not enabled for this workspace", which is exactly why there is a third. A speed-over-time chart with hover in the vehicle detail panel. Comparing several vehicles at once, rather than one selection at a time. A scripted, idempotent backend deploy kit, so the Eventhouse side can be stood up again without clicking through it. What it deploys into your workspace Entra sign-in (Fabric identity) Fabric SQL database Static web app A semantic-model connector (queried as the signed-in user) Data Helsinki Regional Transport Authority (HSL) high-frequency positioning feed, public. Credits Kevin Thomas: the original Helsinki real-time transit solution, and the source of the ideas this one is built on. The Real-Time Intelligence architecture and the Fabric portal host bridge for querying the semantic model are his, as are the vehicle panel layout and the per-vehicle operator notes, which I use here because they were better than what I had. What I added on top is described above. Vehicle positions: Helsingin seudun liikenne / Helsinki Region Transport (HSL), GTFS Realtime, CC BY 4.0. Required attribution, verbatim: "Contains data from HSL, licensed under CC BY 4.0." 3D city model, terrain and orthophoto: Helsingin kaupunki / City of Helsinki, CC BY 4.0. Required attribution, verbatim: "Imagery & 3D models (c) City of Helsinki (CC BY 4.0).", shown in the app whenever the 3D view is active. Nothing is redistributed here: every tile and every feed is streamed from the publisher at run time, with no API key and no copy stored in the repository. CesiumJS (Apache-2.0), used deliberately without a Cesium ion account, Ion.defaultAccessToken is left empty and every layer points at a City of Helsinki endpoint, so there is no commercial basemap dependency. Leaflet (BSD-2-Clause) · React, MSAL, Tailwind CSS, Vite (MIT). Full detail: NOTICE.md. Licence: MIT, Copyright (c) Microsoft Corporation. Try it git clone https://github.com/KornAlexander/Fabric-Apps.git cd Fabric-Apps/industry/helsinki-public-transport npm install npx rayfin up --workspace-id <your-workspace-guid> --tenant <your-tenant-guid> Source, and always the latest version: https://github.com/KornAlexander/Fabric-Apps/tree/main/industry/helsinki-public-transport How it is built: https://kornalexander.github.io/Fabric-Apps/apps/helsinki-public-transport/ It is part of an open-source gallery of Fabric Apps: 3D twins, live maps, admin tools and a few games. https://kornalexander.github.io/Fabric-Apps/45Views0likes0CommentsFabric Empires: a strategy game you win by knowing Microsoft Fabric
Certification study has a shape, and the shape is bad. You read an outline, you do some practice questions, you forget most of it, and a week before the exam you start again from the top. The material is not hard. Nothing gives you a reason to come back tomorrow. So I built one. Fabric Empires is a turn-based 4X strategy game, and the thing it does differently is that combat is a question. A real DP-600 question, on a clock, in the middle of a fight you started. Answer it well and your army is stronger this turn. Answer it badly, lose ground, and the game tells you what you did not know. Play it in your browser No install, no sign-in, runs on a phone. Watch it The trailer: https://youtu.be/Yi4TUopwTDc The opening, rendered entirely in-engine: https://youtu.be/RDww5kNpgeo The second one is worth a word. The trailer is a mood piece and its scenery is generated, which the credits say. The opening is the opposite: every frame is the running app. The terrain is generated at load time, the rivers really did find their way downhill, and the city being founded is a real city on a real map. What it does Explore, expand, exploit and exterminate on a procedurally generated 3D map The technology tree is the published DP-600 skills outline. Forty-one skills across three domains, arranged as a tree, because an outline already is one: a list of things that unlock other things Seven rival factions, each holding a different branch, so who is marching on you tells you what you are about to be tested on It is not only combat. Founding a city asks, research asks, a council review asks Two players at two different levels, on one keyboard. The adult answers with 1 2 3 4, a child answers their own far easier bank with a b c d, and the battle result is the average of both, so a six-year-old genuinely rescues a fight you fumbled Bring your own subject. Hand it an .xlsx or .csv of your own questions and it builds a different tree: another certification, a school curriculum, onboarding Improving the game whenever I have time. It is public while it is being written Why a game rather than a quiz app Underneath the empire is an SM-2 spaced-repetition scheduler: every answer updates an easiness factor, a repetition count and an interval, so topics come back when they are due. That part is not novel, Anki has done it for twenty years and it works. What does not work is remembering to open Anki. You come back tomorrow because your empire is mid-war, and the scheduler gets its retrieval practice as a side effect. The review is not the reason you opened the tab, which is exactly why it happens. What it deploys into your workspace Entra sign-in (Fabric identity) Static web app The copy I run for myself adds a Fabric SQL database and a Direct Lake report over it, which answers a question a quiz app cannot: not which topics you get wrong, but where you get them wrong. The same question under siege with a clock running scores far worse than during calm research, and "does not know it" and "cannot recall it under pressure" need completely different remedies. This gallery copy ships without the data service. Data The exam skills outlines are public. This copy deploys without a data service, so no score and no attempt is stored anywhere: nothing you do leaves your browser. Every question in the shipped bank is original, written from the publicly published skills outline and public documentation. No exam content is reproduced. It is a personal project, not a Microsoft product, and not affiliated with or endorsed by Microsoft. Try it git clone https://github.com/KornAlexander/Fabric-Apps.git cd Fabric-Apps/games-and-learn/fabric-empires npm install npx rayfin up --workspace-id <your-workspace-guid> --tenant <your-tenant-guid> Source, and always the latest version: https://github.com/KornAlexander/Fabric-Apps/tree/main/games-and-learn/fabric-empires How it is built: https://kornalexander.github.io/Fabric-Apps/apps/fabric-empires/ It is part of an open-source gallery of Fabric Apps: 3D twins, live maps, admin tools and a few games. https://kornalexander.github.io/Fabric-Apps/85Views0likes0CommentsIBCS Trainer: learn a charting standard by destroying bad charts
A Canvas platformer that teaches the IBCS notation rules level by level. You play an analyst who conquers bad chart types: pie charts explode, and the wrong chart for a time series has to go. What it does One IBCS rule per level, taught by playing it rather than reading it Progress and scores persisted to Fabric SQL Runs fully in the browser inside a Fabric App What it deploys into your workspace Entra sign-in (Fabric identity) Fabric SQL database Static web app Data The IBCS notation standard. No external data. Try it git clone https://github.com/KornAlexander/Fabric-Apps.git cd Fabric-Apps/games-and-learn/ibcs-trainer npm install npx rayfin up --workspace-id <your-workspace-guid> --tenant <your-tenant-guid> Source, and always the latest version: https://github.com/KornAlexander/Fabric-Apps/tree/main/games-and-learn/ibcs-trainer How it is built: https://kornalexander.github.io/Fabric-Apps/apps/ibcs-trainer/ It is part of an open-source gallery of Fabric Apps: 3D twins, live maps, admin tools and a few games. https://kornalexander.github.io/Fabric-Apps/22Views0likes0CommentsHigher Education Race Chart: 20 years of enrolment, animated
An animated bar-chart race of enrolment at German universities, running off a Direct Lake semantic model, with a build-time snapshot inlined so the first frame is instant. What it does Students, first-year students and international students, switchable University, federal state and city dimensions Direct Lake semantic model over DESTATIS GENESIS data Report pages that mirror the Power BI report the data comes from What it deploys into your workspace Entra sign-in (Fabric identity) Static web app Data DESTATIS GENESIS, Datenlizenz Deutschland 2.0. Try it git clone https://github.com/KornAlexander/Fabric-Apps.git cd Fabric-Apps/industry/education/hochschul-race npm install npx rayfin up --workspace-id <your-workspace-guid> --tenant <your-tenant-guid> Source, and always the latest version: https://github.com/KornAlexander/Fabric-Apps/tree/main/industry/education/hochschul-race How it is built: https://kornalexander.github.io/Fabric-Apps/apps/hochschul-race/ It is part of an open-source gallery of Fabric Apps: 3D twins, live maps, admin tools and a few games. https://kornalexander.github.io/Fabric-Apps/46Views0likes0CommentsMaritime Insights: the Kiel Fjord as an interactive 3D sea chart
Vessel traffic on a photoreal 3D chart of the Kiel Fjord, with a line-of-sight model that is honest about what a 25 m mast can and cannot see. What it does A recorded AIS day from the Danish Maritime Authority, 261 vessels Photoreal 3D terrain and bathymetry A radar line-of-sight grid that reports what it cannot resolve, not just what it can An assistant that answers questions about the scene in plain language What it deploys into your workspace Entra sign-in (Fabric identity) Static web app Data Danish Maritime Authority AIS, open data. The traffic shown is a recorded day, labelled as such in the app. Credits Terrain, surface model, buildings and orthophotos: Landesamt für Vermessung und Geoinformation Schleswig-Holstein (LVermGeo SH), CC BY 4.0. Required attribution, verbatim: Datenquelle: Landesamt für Vermessung und Geoinformation Schleswig-Holstein (LVermGeo SH), CC BY 4.0 [Daten bearbeitet] Coarse terrain shell: © DLR e.V. 2010–2014 and © Airbus Defence and Space GmbH 2014, 2018 provided under COPERNICUS by the European Union and ESA; all rights reserved. © OpenStreetMap-Mitwirkende, ODbL Vessel traffic: Danish Maritime Authority AIS, open data. The German authority and product names are kept deliberately, they are the official names and what you must search for to find the same data. A translated name finds nothing. Full detail: NOTICE.md. Try it git clone https://github.com/KornAlexander/Fabric-Apps.git cd Fabric-Apps/industry/maritime-insights npm install npx rayfin up --workspace-id <your-workspace-guid> --tenant <your-tenant-guid> Source, and always the latest version: https://github.com/KornAlexander/Fabric-Apps/tree/main/industry/maritime-insights How it is built: https://kornalexander.github.io/Fabric-Apps/apps/maritime-insights/ It is part of an open-source gallery of Fabric Apps: 3D twins, live maps, admin tools and a few games. https://kornalexander.github.io/Fabric-Apps/20Views0likes0Comments