My CV
Back to projects
Illustrated Atelier Bozoïde homepage with navigation between workstations.
Product preview

Case study · 12 August 2026

Atelier Bozoïde

A personal project in development for planning crafting in DOFUS, comparing scenarios and working out which resources are needed.

Format
Planning and simulation tool
Role
Product · Architecture · Full-stack
Status
v0.5 in development

Technologies

  • Next.js
  • React
  • TypeScript
  • tRPC
  • Zod
  • Prisma
  • PostgreSQL
  • SQLite
  • Computer Vision
  • WebGL

My contribution

What I built.

  1. 01

    Recipes, resources and inventory are connected to calculate crafting requirements

  2. 02

    Simulations are separate from saved data, with a preview before changes are applied

  3. 03

    Calculations and validation use a central set of business rules

  4. 04

    Missing data is flagged rather than replaced with a quantity of zero

Key decisions
  1. 01Connect data to a decision

    Bring recipes, resources, professions and inventory together to help players plan a crafting goal

  2. 02Separate simulation from saved changes

    Let players compare scenarios and explicitly choose which changes to save

  3. 03Validate screenshot recognition

    Evaluate screenshot import, with confirmation of uncertain items and quantities

  4. 04Share the business rules

    Centralise calculations and validation for the web interface and AI agent integrations

01

Turn game data into a planning tool

I am developing Atelier Bozoïde to help DOFUS players plan crafting and equipment improvements. These activities involve combining recipes, available resources and progress in the game’s professions. Calculations become more complex when several items share the same ingredients.

The project began with a script that collected game data in SQLite. I then built a React interface around three questions: what can I craft, which resources am I missing and which scenario should I plan? This gave the collected data a practical purpose.

02

Centralise calculations and validation

As I added inventory, professions and crafting plans, the same calculations began appearing across several screens. Fixing one copy could leave a different version running elsewhere.

I reorganised the application around central business rules shared by the web interface and AI agent integrations. Next.js, tRPC and Zod structure data exchange and validation. Interfaces can then evolve while reusing the calculation logic, with less duplication to maintain.

03

Keep scenarios separate from saved data

I separated read-only game reference data from player profiles, goals and resources. Simulations provide a separate space for comparing crafting plans and equipment enhancement scenarios.

A preview lets players examine changes before choosing to apply them to the data saved in Atelier. Missing information is marked as unknown: an absent quantity does not automatically become zero. These decisions make results easier to interpret and give players an explicit choice about what to save.

04

Validate screenshot import

Entering an inventory manually takes time. I am developing an import process that reads screenshots of the player’s in-game bank inventory: detecting slots, recognising items and reading quantities.

This recognition process is still being validated. The workflow includes confirmation of uncertain results before they are saved. The aim is to reduce repetitive entry while keeping the limits of recognition visible.

05

Develop the product within a clear scope

Version 0.5 focuses on planning and equipment enhancement. Gathering routes and some probability calculations remain incomplete. A conversational experience with an AI agent and 3D character visualisation are planned developments, supported by the separation between interfaces and business rules.

Data stays on the player’s own instance; a hosted version still requires further work on authentication, permissions and operations. Atelier remains a planning tool and does not control the DOFUS client. This project gives me practical experience in domain modelling, handling uncertainty and gradually developing a full-stack application.