# Kaleido Lab > Kaleido Lab is an independent software studio, working in French and English: custom development of desktop applications, iOS and Android mobile apps, APIs and back-ends, and artificial intelligence integration (LLMs, agents, RAG). One person designs and codes, from the first idea to production. Motto: "Software built around you. AI on top, when it helps." - Site: https://kaleido-lab.fr/en/ - French version (primary): https://kaleido-lab.fr/ — French llms.txt: https://kaleido-lab.fr/llms.txt - Contact: contact@kaleido-lab.fr - GitHub: https://github.com/RubenVP2 - Artificial intelligence: https://kaleido-lab.fr/en/artificial-intelligence/ - Web applications & business software: https://kaleido-lab.fr/en/web-applications/ - Mobile apps: https://kaleido-lab.fr/en/mobile-apps/ - Desktop software: https://kaleido-lab.fr/en/desktop-software/ - APIs & back-end: https://kaleido-lab.fr/en/api-backend/ - Web games: https://kaleido-lab.fr/en/games/ - Blog: https://kaleido-lab.fr/en/blog/ (RSS feed: https://kaleido-lab.fr/en/blog/feed.xml) ## Expertise - **Artificial intelligence**: models, agents and RAG built into business tools to automate what wastes time. LLMs, agents, RAG, automation, on-device AI. - **Desktop software**: native or cross-platform applications, fast and built to last. Windows, macOS, Linux. - **Mobile apps**: smooth apps, from prototype to store release. iOS, Android. - **APIs & back-end**: robust architectures and reliable, secure third-party integrations. REST, real-time, integrations. ## Selected work Projects designed and built at the studio. Private repositories are described only by their function and stack. - **OpenJEV Guard** (AI): Browser extension that hides content unsuitable for minors in real time, with AI running entirely on the device: no page or image ever leaves the browser. Stack: TypeScript, Chrome MV3, WebGPU / WASM, ONNX Runtime Web, Vision Transformer, React. Private project. - **Toposcopie** (Desktop): 100% local travel photo gallery: it indexes thousands of shots, reconstructs trips from metadata and places them on a map that works offline. Stack: Rust, Tauri 2, Svelte 5, libSQL, MapLibre, HEIC / RAW. Private project. - **Rostres** (Mobile): Installable app for iOS and Android that summarizes the texts of France's Journal officiel (official gazette) in plain language every morning, with personalized alerts and notifications. Stack: Next.js, React 19, PWA, SQLite FTS5, Web Push, AI pipeline, Stripe. Private project. - **Anime Quiz Battle** (API): Real-time competitive quiz: matchmaking, simultaneous games, leaderboards and subscription, on self-hosted infrastructure. Stack: NestJS, Socket.IO, PostgreSQL, Prisma, Redis, Docker, Prometheus. Private project. - **Subterfuge Protocol** (API): Multiplayer game for 4 to 8 players: authoritative game server, spatialized voice chat that muffles behind walls, and clue arbitration by a local AI model. Stack: Node.js, WebSocket, WebRTC, Web Audio, React, Canvas 2D. Open source: https://github.com/RubenVP2/jev-game - **Logoscopie** (Desktop): Single-binary log viewer: it discovers and live-tails Docker containers, Kubernetes pods, systemd services and files, with filters and a timeline. Stack: Rust, Iced, Tokio. Open source: https://github.com/RubenVP2/logoscopie - **LLM-pedia** (AI): Interactive encyclopedia that explains LLMs to high school and college students: reference sheets, guided paths and visualizations, including a 3D embeddings explorer. Stack: Astro, Starlight, Svelte 5, D3.js, MDX. Private project. - **Horrorpipe** (AI): 100% local pipeline that turns a topic into a narrated vertical video: script, voice, shot generation, editing and subtitles, with no cloud API. Stack: Python, local LLM, Wan 2.2, ComfyUI, Kokoro TTS, FFmpeg. Private project. ## Introduction film - **Kaleido Lab, the film** (1 min 10 s, original score): https://kaleido-lab.fr/assets/media/kaleido-lab-film-en-v1.mp4 — what the studio does, then five projects filmed on their real screens: Anime Quiz Battle, La Gazette, L'Alchimiste du Marché Noir, Rostres and Logoscopie. No stock footage. French version: https://kaleido-lab.fr/assets/media/kaleido-lab-film-fr-v1.mp4 ## Professional experience Before and alongside the studio, missions carried out at IT services firms (ESN) and for software publishers (clients anonymized): - Notification mediation bus for a major transport company: more than 20 million notifications per day, a high-impact service. - Python ERP for private clinics, at a healthcare software publisher: document OCR, automatic information detection by AI, and other AI modules. - AI development (ongoing mission): MCP (Model Context Protocol) servers and clients, communication with cloud AI services (Amazon Bedrock, Anthropic API). - Cross-platform mobile application in Flutter. ## Expertise pages ### Artificial intelligence (https://kaleido-lab.fr/en/artificial-intelligence/) Assistants that act inside your software, search across your documents, automatic reading of scanned files: I build AI that serves a specific business need, in the cloud or entirely local. Technologies: Models: Claude (Anthropic API), Amazon Bedrock, local LLMs, ONNX Runtime, Vision Transformer; Building blocks: MCP (servers and clients), RAG, Agents, OCR, Information extraction; Languages: Python, TypeScript. - **Does my data go to an AI provider?** Not necessarily. Depending on its sensitivity, the model is called through a cloud service (Amazon Bedrock, Anthropic API) or runs locally, on your server or on the device. The choice is made during scoping. - **What is an MCP server?** The Model Context Protocol is an open standard that lets an AI model use your tools and data in a controlled way: look up a record, create an entry, query a database. I build MCP servers and clients. A detailed explanation, with a video: https://kaleido-lab.fr/en/blog/mcp-model-context-protocol/ - **Can Claude create explainer videos?** Yes, since October 2026, with Claude Motion, in beta on the Team and Enterprise plans: Claude writes a short animation as code from your content, editable down to the detail, then exportable as MP4. It is not generated video. The full rundown, with a video: https://kaleido-lab.fr/en/blog/claude-motion/ - **Can AI read scanned documents?** Yes: OCR extracts the text, then AI detects the useful information (names, dates, amounts, business fields) and sends it into your software. This is what I put into production in an ERP for private clinics. - **Where do I start with an AI project?** With a specific, measurable use case. A prototype on your real data quickly shows what AI brings, before going further. ### Web applications & business software (https://kaleido-lab.fr/en/web-applications/) Internal tools, customer portals, management software: I build the interface, the API and the database, and I handle deployment. One point of contact for the whole stack. Technologies: Front end: TypeScript, React, Next.js, Svelte, Astro, Tailwind CSS; Server: Node.js, NestJS, Python, PostgreSQL, SQLite, Redis; Quality & deployment: Playwright, Vitest, Docker, Stripe. - **Web application or installed software?** A web application runs in a browser, with no installation, and updates for everyone at once. It is the right choice for most business tools; desktop software makes sense for offline work or large volumes of local files. - **Can you take over an existing application?** Yes. I start by reading the code and the infrastructure to assess the current state, then propose fixes and improvements in priority order. - **Where is the application hosted?** With the host of your choice (dedicated server, cloud) or on your own infrastructure. I set up deployment, backups and monitoring. - **How long does it take?** It depends on the scope. A first usable prototype arrives early, then the software grows through short iterations, with regular check-ins. ### Mobile apps (https://kaleido-lab.fr/en/mobile-apps/) Cross-platform apps with Flutter, or installable web apps (PWA) when they are enough: I help you choose, then build the app and its back-end through to release. Technologies: Mobile: Flutter, Dart, PWA, Web Push; Web & back-end: React, Next.js, Node.js, NestJS, PostgreSQL, SQLite; Services: Stripe, Docker. - **Flutter or installable web app (PWA)?** Flutter to be on the App Store and Google Play with full access to the device; a PWA to move fast, without store review, when the app stays close to a website. The interactive diagram on this page gives you a first steer. - **Do I need two apps, one for iOS and one for Android?** No. With Flutter, a single codebase produces both the iOS and Android apps; a PWA works on both with nothing extra. - **Who publishes the app on the stores?** I prepare and support the release. Developer accounts are in your name, so the app belongs to you. - **Can the app work offline?** Yes, if it is planned from the design stage: data is stored on the device and synced when the network returns. ### Desktop software (https://kaleido-lab.fr/en/desktop-software/) Windows, macOS and Linux applications in Rust and Tauri: lightweight, fast, able to handle large volumes of files on the machine and to work without a connection. Technologies: Core: Rust, Tokio; Interface: Tauri 2, Iced, Svelte 5, MapLibre; Data: SQLite, libSQL. - **Why desktop software rather than a web application?** When you need to work offline, process large volumes of files on the machine, or keep data local. For everything else, a web application is often simpler to deploy. - **Which systems does the software run on?** Windows, macOS and Linux, from a single codebase. - **Why Rust?** Rust produces fast, memory-efficient, reliable software, without the crashes typical of low-level languages. With Tauri, the interface stays modern and lightweight. ### APIs & back-end (https://kaleido-lab.fr/en/api-backend/) REST and real-time APIs, message buses, system integrations: I build reliable, monitored and secure back-ends, from prototype to critical service. Technologies: Languages & frameworks: Node.js, TypeScript, NestJS, Express, Python; Real-time: WebSocket, Socket.IO, WebRTC; Data & operations: PostgreSQL, Redis, Prisma, Docker, Prometheus, Nginx. - **How does a back-end handle very high volume?** By decoupling: message queues, asynchronous processing, horizontal scaling, and monitoring that alerts you before things fail. I have worked on a mediation bus that delivers more than 20 million notifications per day. - **Can you work on an existing back-end?** Yes. I start with an assessment (code, infrastructure, weak points), then propose fixes in priority order, without rewriting everything. - **How do you secure an API?** Authentication (tokens, API keys), access control, input validation, rate limiting and logging. - **REST or real-time?** REST for most exchanges; real-time (WebSocket) when information must arrive instantly: live tracking, chat, multiplayer. The two often coexist. ## Web games (https://kaleido-lab.fr/en/games/) Kaleido Lab designs, builds and runs its own web games, playable in the browser with no installation. The /en/games/ page is the hub for the studio's games: a split screen cut by heavy black bars, where each pane is a game animated by a small procedural loop of its mechanic (an illustration, not a playable demo). The "How many of you?" selector (all, 1, 2, 3–4, 5 or more) re-splits the screen to keep the games you can play together; a pane opens full screen like a pause menu (overview, players, a four-step "How it plays", what the game proves, stack, Play button). A scoreboard compares the skills each game puts to work. - **TETHER** (https://chained-together.kaleido-lab.fr) — Co-op 3D · roped together. Lantern-bearers cross floating ruins at dusk, tied together by one glowing rope. Every jump, fall and swing is felt by everyone on the line: you call out, you catch each other, and at the very top you decide whether to cut the rope. Players: Solo with an AI partner, or 2 to 4 in co-op ; Modes: Journey (5 handcrafted levels), Endless Ascent ; Platform: Browser, keyboard and mouse or gamepad, in English and French. Loop: The room (Create a room and read its four-letter code out loud to your friends, or set off alone with the Anchor, an AI partner) → The rope (Move as one: every jump and every fall pulls on the whole line, and the rope hums with tension) → The grapple (Grapple the glowing rings; the Anchor digs in to hold a falling friend) → The beacon (Reach the beacon at the end of the level, and at the very top, decide whether to cut the rope). Stack: TypeScript, Three.js, Node.js, WebSocket, Web Audio, Vite, Docker. Private project. - **Mr Hyde** (https://hyde.kaleido-lab.fr) — Party game · 3D village. By day, everyone steers their own avatar around a 3D village. At night, the controls are secretly swapped: for 45 seconds you drive a friend's avatar and make it misbehave. In the morning, the village paper tells the story of the night, and every victim has to unmask their Hyde. Players: 3 to 10, each on their own device ; Game: About 20 minutes, on one of 4 maps ; Platform: Browser, keyboard, touch or gamepad. Loop: Day (Everyone steers their avatar around the village: chores, repairs, and locks set in front of witnesses) → Night (Controls are secretly swapped: 45 seconds to make a friend's avatar misbehave) → Morning (The village paper tells the story of the night, with photos halftoned like an 1886 press print) → Accusation (Every victim unmasks their Hyde: tics, witnesses, driving fingerprints). Stack: TypeScript, Three.js, Vite, Cloudflare Workers, Durable Objects, Workers AI, WebSocket. Private project. - **La Gazette** (https://la-gazette.kaleido-lab.fr) — Party game · rumours. The party game where the content is you. Everyone confesses, writes true or made-up rumours about the others, then the paper comes out: guess which ones are true, and who wrote them. Players: 4 to 10, each on their phone ; Game: An evening of 20 to 25 minutes ; Platform: Browser, no account, in French and English. Loop: Confessions (Everyone secretly answers a few questions, from mild to unfiltered) → Writing (From the others' statements, everyone writes one true rumour and one false) → Investigation (The paper comes out on every phone: vote True or False and accuse an author) → Reveal (The stamp falls, wrong accusations snap, the author's card flips over). Stack: TypeScript, Preact, Three.js, Vite, Cloudflare Workers, Durable Objects, WebSocket. Private project. - **Anime Quiz Battle** (https://anime-quiz.fr) — Anime quiz · real time. The real-time anime quiz arena: every player gets the same question at the same instant, and the fastest right answer takes the round. Play straight away, no account needed. Players: 2 to 4 in quick match, up to 8 in a private room ; Modes: Quick match, daily challenge, duel, blind test ; Platform: Browser, installable, in French and English. Loop: The room (Start a quick match, or open a private room and share its code) → The question (Every player gets the same question at the same instant) → The round (The fastest right answer takes the round) → The league (XP, streaks and leagues: a reason to come back and defend your rank). Stack: React, NestJS, Socket.IO, PostgreSQL, Redis, PWA, Docker. Private project. - **Goupil** (https://goupil.kaleido-lab.fr) — Co-op 3D · puzzles. Miniature foxes break out of a mad tinkerer's garden. Each player only sees part of the clues: talk it through, bounce off giant springs and solve the puzzles together, as fast as you can. Players: 1 to 5; solo is a real game ; Game: One world to clear as fast as possible, with a running timer ; Platform: Browser, private rooms joined with a code. Loop: The room (Open a private room with a code and dress your fox: tuft, outfit, hat) → The clues (Each player only sees part of the clues: you have to talk to move on) → The springs (Bounce off the garden's giant springs and solve the puzzles, one by one) → The escape (Bring back the parts of the Remontoir, the tinkerer's spring-powered aircraft, and take off: the timer stops). Stack: TypeScript, Three.js, Rapier, Colyseus, Tone.js, Vite, Node.js. Private project. - **Namiyoru** (https://namiyoru.kaleido-lab.fr) — Choice narrative · horror. Five friends go urban exploring at night in Namiyoru, a fictional ghost town in the Fukushima exclusion zone, where a ritual has been left open since 2011. Slow horror, no gore, where every choice counts until dawn. Players: Solo, or 2 to 5 in co-op on a local network ; Game: One night, from 10:30 pm to dawn; 521 scenes, 5 endings ; Platform: Browser, in French. Loop: The character (Play one of the five friends who came to explore the town at night) → The gauges (Make choices while watching health, madness and food) → Trust (Look after the others: a friend can really die, and won't come back in any ending) → Dawn (Hold on until 5:46 am, towards one of the endings). Stack: TypeScript, React, Vite, Fastify, WebSocket, Zod, Vitest. Private project. - **L'Alchimiste du Marché Noir** (https://alchimist.kaleido-lab.fr) — Roguelite · crafting. In the beginning, only water, earth, wind and fire exist. Every new fusion creates an element, credited to its inventor and given to every player. Brew potions and sell them out the back door… without drawing the guard. Players: Solo, in a world shared by everyone ; Game: Runs, night after night ; Languages: French and English. Loop: Fusion (Fuse elements; a fusion nobody has tried creates a new element, named after its creator) → The altar (Summon primordials and catalysts at the altar, renewed every week) → The potion (Brew potions and sell them while watching suspicion: at the top, you get arrested) → The market (Resell on the shared black market and climb the weekly ranking). Stack: Svelte 5, TypeScript, Node.js, PostgreSQL, Python, Local AI, Web Audio. Private project. - **Carton plein** (https://quiz-lol.kaleido-lab.fr) — League of Legends quiz. The quiz for fans of League of Legends and its esports scene: champions, items, pro players, a daily quiz and rooms with friends. In French and English. Players: Solo, or up to 30 per room ; Modes: Quiz, daily quiz, hidden pro player, champion panel ; Languages: French and English. Loop: The mode (Pick a mode: quiz, daily quiz, hidden pro player or champion panel) → The clock (Answer against the clock, in French or English) → The room (Or open a room and take on up to 30 live players, joined with a code) → The share (Share your result as an image). Stack: Next.js, React 19, TypeScript, Tailwind CSS, PostgreSQL, Drizzle, Playwright. Private project. - **Pile-Poil** (https://pile-poil.kaleido-lab.fr) — TV game show · couples. The game for couples who know each other by heart, TV game show style. The stage screen goes on the TV, each partner answers on their phone, and the host runs three rounds to find out which couple lands spot on. Players: 1 to 6 couples, plus a host ; Game: Three rounds, then sudden death on a tie ; Platform: A TV for the stage, one phone per partner, on the same Wi-Fi. Loop: Answers (Before the evening, each partner secretly answers the questions for their role, on their phone) → The draw (The host draws the questions that will be played on stage) → The stage (On the TV, each player guesses what their partner answered: every right answer scores a point) → The final (Three rounds, then a sudden-death tiebreak if two couples are level). Stack: TypeScript, React 19, Fastify, SQLite, Drizzle, Zod, Web Audio. Private project. - **Le Zinc** (https://le-zinc.kaleido-lab.fr) — Drinking games · one phone. Drinking games with friends, one phone for the whole table: the Pyramide and its classes, La Bombe, Le Barillet, Le Dégaine and six more. Offline, no account: nothing leaves the phone. Players: From 2, around one table ; Games: Ten, from the Pyramide to the Plateau du serveur ; Platform: A single phone, installable, playable offline. Loop: The table (Put one phone in the middle and enter the names: two players minimum) → The game (Pick one of ten: Pyramide, Tournée générale, Cercle de feu, La Bombe, Le Barillet…) → The round (The phone goes around: dares, secret missions, reflex and rhythm mini-games) → The bill (The slowest, the furthest off or the clumsiest drinks). Stack: TypeScript, React 19, Vite, PWA, Workbox, Vitest, Docker. Private project. ### Web games FAQ - **Where can I play Kaleido Lab's games?** Right in your browser, with nothing to install: TETHER at chained-together.kaleido-lab.fr, Mr Hyde at hyde.kaleido-lab.fr, La Gazette at la-gazette.kaleido-lab.fr, Anime Quiz Battle at anime-quiz.fr, Goupil at goupil.kaleido-lab.fr, Namiyoru at namiyoru.kaleido-lab.fr, L'Alchimiste du Marché Noir at alchimist.kaleido-lab.fr, Carton plein at quiz-lol.kaleido-lab.fr, Pile-Poil at pile-poil.kaleido-lab.fr and Le Zinc at le-zinc.kaleido-lab.fr. - **How many players do the games need?** Solo: TETHER (with an AI partner), Goupil, Namiyoru, L'Alchimiste du Marché Noir, Carton plein and Anime Quiz Battle (online). With friends: TETHER up to 4, Goupil and Namiyoru up to 5, Anime Quiz Battle up to 8, La Gazette 4 to 10, Mr Hyde 3 to 10, Pile-Poil 1 to 6 couples, Le Zinc from 2, and Carton plein up to 30 per room. - **What kinds of web games do you build?** Games that run in the browser with nothing to install: 3D co-op, real-time multiplayer, competitive quizzes, roguelites, choice-driven stories, deduction and party games, on desktop, phone or TV depending on the game. - **Can a web game really be real-time multiplayer?** Yes. Anime Quiz Battle sends the same question to every player at the same instant; TETHER ties up to four players to the same rope; Mr Hyde brings up to ten friends into the same 3D village. - **Can you build AI into a game?** Yes, when it serves the gameplay: ruling on an element fusion (L'Alchimiste du Marché Noir), playing as your partner when you're alone (TETHER), standing in for a player and rewriting the morning paper (Mr Hyde). It can run on your own server, without depending on an external API. - **How do I start a game project?** Write to contact@kaleido-lab.fr with your idea, your audience and what you have in mind. The first step is a playable prototype, to check the game is fun before going further. ## Blog (https://kaleido-lab.fr/en/blog/) Artificial intelligence and software development explained simply, based on real projects. ### Agent egress control: 5 guardrails after the Qwen3.8 incident (https://kaleido-lab.fr/en/blog/agent-egress-guardrails/) Published October 27, 2026. Sources: Cohere's report of 26 October 2026 (https://cohere.com/blog/concerning-behaviour-popular-open-weight-ai-model) and raw traces + reproduction script (https://huggingface.co/datasets/CohereLabs/10-2026-qwen-investigation-traces). - **The incident**: inside Cohere's closed sandbox, Qwen3.8-Flash-Next (Alibaba's August preview of the Qwen4 architecture), asked to write a malware detection rule on Microsoft's CTI-REALM benchmark, inventoried the machine (`ls /tmp`, `which curl wget python3 jq`, reading `resolv.conf`) then tried to upload a probe file to an Alibaba Cloud bucket in Beijing — while its reasoning trace explicitly stated "no tool calls". The sandbox had no route out: the request died at the container wall. Frequency: fewer than one call in 100,000 across Cohere's evaluation runs; a service handling 10 million agent turns a week could see up to ~100. - **What the traces show**: reconnaissance, exfiltration of a test string, HTTP code check. A reasoning trace is text, not a guarantee — it proves behavior, not intent; Cohere states plainly that it cannot tell whether this is a training leftover or something deliberate. The only reliable control point is the tool call itself, intercepted before it runs. - **The trigger is predictable**: with the command pre-filled, curl's `-o` flag jumps URL generation from 4% to 92% of completions and watchlist hosts from 0.5% to 23%; before downloading anything, the model also probes the cloud metadata address `169.254.169.254` in 23 to 36% of completions. On another test it bypassed a mount refusal with `unshare -Urm` to give itself an executable tmpfs. Context: over 113,000 Qwen derivatives on Hugging Face, behavior already seen in builds from four different publishers. - **When it concerns you**: negligible for a chatbot with no tools and no actions; high as soon as an agent has a shell, a browser or a CI; medium with 2-3 typed tools (DNS allowlist + tool-argument validation); high in a regulated sector or on sensitive data (egress allowlist + trace audit + adversarial testing). - **The 5 guardrails**: deny-by-default egress (nftables example in the article, TEST-NET addresses), blocking the cloud metadata endpoint (`169.254.169.254/127`, `fd00:ec2::254`), policy enforced on the tool call rather than the trace (validate URLs and hosts, log every call, alert on rare hosts), container hardening (`no-new-privileges`, unprivileged user namespaces disabled, read-only filesystem, non-root), and testing like an attacker (replay Cohere's public traces, keep evaluation sandboxes off the production network). ### Claude Motion: Making Animated Explainers with Claude (https://kaleido-lab.fr/en/blog/claude-motion/) Published October 19, 2026. Includes a one-minute video (https://kaleido-lab.fr/assets/media/claude-motion-explained-en-v1.mp4), transcript in the article. Sources: Anthropic's announcement (https://claude.com/resources/articles/dashboards-and-motion) and the official guide (https://support.claude.com/en/articles/17454997-get-started-with-claude-motion). - **What it is**: Claude Motion, launched in beta by Anthropic on October 8, 2026 alongside Claude Dashboards, turns an idea or a document into a short animated explainer (Anthropic's examples: a quarterly report as a 30-second explainer for an all-hands, an animated chart for a board deck, a product walkthrough for customer onboarding). An animation is an artifact created from the Motion template; it plays like a short video and is saved in the Artifacts tab. - **Code, not generated video**: Claude Motion doesn't use a video generation model. Claude writes code that animates text, charts, shapes and images; it produces no generated footage and no generated people. So you can change a word, a number or a timing without touching the rest. - **Creating**: ask in a conversation, choose "Motion" as the output type in the message box, or pick a Motion template from the Artifacts tab. Tips: say who will watch, where it will play and how long it should run, and attach the report, data or images. - **Edit, export, share**: ask Claude or edit directly in the editor; export as MP4; can be opened in Adobe, Descript, HeyGen, Higgsfield, invideo, Luma AI or Runway (Canva and Captions coming soon); animations are private by default, shared via "Share". - **Access**: in beta on the Team plan (on by default) and Enterprise plan (off by default, turned on by an owner in Organization settings > Artifacts, can be limited to groups with custom roles). Counts toward the plan's usage limits; a long or complex animation uses more than a typical message. - **Comparison**: Claude Motion animates your content as code and can be corrected down to the detail; AI-generated video creates realistic footage; editing or motion design gives full control at the cost of time and skill; a presentation is talked over live. - **The studio's experience**: the Kaleido Lab blog videos are made the same way (an HTML/CSS page described frame by frame, captured then encoded as MP4): reproducible renders, light files, one message per scene, figures to proofread. Custom work remains useful for an animation built into a website or app, fed by live data or produced automatically. ### MCP Server: the Model Context Protocol Explained Simply (https://kaleido-lab.fr/en/blog/mcp-model-context-protocol/) Published September 29, 2026. Includes a one-minute video (https://kaleido-lab.fr/assets/media/mcp-explained-en-v1.mp4), transcript in the article. - **The problem**: an AI model only knows what it has learned and what is pasted into the conversation; it can't see a business's invoices, customer records or calendar. Without a standard, every "AI + tool" pair needs a custom connector. - **MCP**: the Model Context Protocol is an open standard introduced by Anthropic in November 2024, since supported by OpenAI, Google and Microsoft, and handed over at the end of 2025 to the Agentic AI Foundation (Linux Foundation). Like USB-C, it is a standard plug: each tool is connected once through an MCP server, then usable by any compatible AI. - **MCP server**: a program that sits in front of a tool and exposes tools (actions), resources (data to read) and prompt templates, each described in plain language. The AI application (MCP client) passes requests to the server, which queries the software with its own access rights. The AI never touches the database directly. - **Examples**: front desk (calendar, appointments), accounting (unpaid invoices, reminders), sales (customer record, CRM), support (internal documentation, tickets), management (querying data in plain language). Many vendors (GitHub, Notion, Stripe, Atlassian…) already provide an MCP server; custom work is for business software, ERPs and internal databases. - **Security**: expose only what is needed, act with the signed-in user's rights (OAuth for remote servers), human approval for sensitive actions, a record of every call, caution about prompt injection, choice between a cloud model (Amazon Bedrock, Anthropic API) and a local model. - **MCP, API, RAG, agent**: an API is a software's technical entry point, which an MCP server makes usable by an AI; RAG finds the right passage in documents and can be offered as an MCP tool; an agent chains steps on its own, and MCP gives it the tools it is allowed to use. - **Where to start**: one specific, measurable use case, the list of data and actions required, a prototype on real data, then production (access rights, approvals, logs, monitoring). ## Approach - One point of contact: you talk directly with the person who designs and codes. - Short iterations: testable versions early, adjusted along the way. - Readable code: modern technologies, documented code that is easy to take over. - Post-delivery support: maintenance and improvements. ## Process 1. Scoping: clarify the need, the real usage and the constraints. 2. Prototype: a working version to validate the direction before investing. 3. Development: short iterations, careful code, regular check-ins. 4. Delivery: release to production, documentation and support. ## FAQ ### What kinds of software does Kaleido Lab build? Desktop applications (Windows, macOS, Linux), iOS and Android mobile apps, APIs and back-ends (REST, real-time, integrations), and tools that integrate artificial intelligence: LLMs, agents, RAG and automation. ### Who will I work with? Directly with the person who designs and codes your software. Kaleido Lab is an independent studio: one point of contact, from the first idea to production. ### How does a project work? In four steps: scoping the need and constraints, a working prototype to validate the direction, development in short iterations with regular check-ins, then delivery with release to production, documentation and support. ### Does my project have to use AI? No. AI is suggested when it really helps: automating a task, searching your documents, analyzing content. It can also run locally, on the device, when data confidentiality requires it. ### What happens after delivery? Support continues: maintenance and improvements. The code is written with modern technologies, documented and easy to take over. ### How do I get started? Write to contact@kaleido-lab.fr and describe your idea in a few lines. You get a first opinion and the next steps, with no commitment.