-
-
Start with curiosity or a concrete learning goal, then let Shibori identify what deserves your focus.
-
GPT-5.6 recommends one next focus across multiple learning goals, explains why, and leaves the final choice to the learner.
-
Shibori reshapes material into concepts suitable for listening and one task that deserves focused desk time.
-
An understanding check isolates one actionable gap and uses it to improve the learner’s next allocation.
Inspiration
Learning resources are abundant, but deep focus is scarce—especially for people studying while working or managing several goals.
Most learning tools optimize for adding more content. Shibori takes the opposite approach: it decides what deserves the learner’s limited focus.
The name comes from a camera aperture. Just as an aperture controls light to bring one subject into focus, Shibori narrows a learner’s attention to one worthwhile next step.
What it does
Shibori is an AI learning portfolio manager.
A learner can begin with curiosity or define something they want to be able to do. Shibori then uses GPT-5.6 to:
- organize a learning path and show the learner’s current position;
- recommend one next focus across multiple learning goals;
- explain why that focus is recommended while preserving the learner’s final choice;
- reshape learning material into content suitable for listening and work requiring focused desk time;
- generate a personalized audio lesson and exactly one desk exercise;
- assess what an answer actually demonstrates;
- isolate a specific knowledge gap without treating the entire topic as failed; and
- use that gap to improve the next recommendation.
Each learning goal keeps its own target state, position, understanding, checks, and gaps. Switching goals never erases the learner’s progress.
Shibori does not treat reading or listening as proof of understanding. It asks whether the learner can explain, calculate, judge, or perform what they learned.
How we built it
Shibori is built with Next.js, React, and TypeScript and deployed on Vercel.
Every language-model decision uses GPT-5.6. Strict structured outputs allow the application to safely consume learning paths, focus recommendations, material allocations, understanding checks, and gap assessments.
OpenAI’s Audio API with gpt-4o-mini-tts transforms listening material into English or Japanese speech. The API key remains on the server.
For this MVP, learning state is versioned and stored locally in the browser. This makes it possible to close the application, return later, and continue from the same learning position.
The public demo opens in English for international judging, while the complete Japanese experience remains available. Changing the interface language does not change or erase learning state.
How we used Codex
Codex worked as an implementation agent throughout the project.
We used an origin-driven development process: first defining the product language, user pains, user-story map, acceptance criteria, and observable test specifications. Codex then projected that approved intent into application code, automated tests, technical decisions, deployment configuration, and submission assets.
Codex helped us:
- turn the core learning loop into testable vertical slices;
- implement and validate GPT-5.6 structured-output boundaries;
- build the bilingual experience;
- test state isolation across multiple learning goals;
- verify linting, types, production builds, and browser behavior;
- prepare the deployed demo and submission video; and
- preserve important implementation decisions as architecture records.
This process allowed the implementation to evolve without losing the original product intent.
Challenges we faced
The hardest challenge was maintaining consistency across what initially appeared to be separate AI features.
Material classification, the audio explanation, the desk exercise, the learner’s current position, and unresolved gaps all need to express the same learning judgment. We therefore combined related decisions where possible and used strict schemas instead of treating each output as independent generated text.
Another challenge was balancing recommendation and autonomy. Shibori recommends exactly one focus to reduce decision fatigue, but it never automatically chooses on the learner’s behalf.
We also had to ensure that English and Japanese generated content remained consistent with the selected language while preserving the same underlying learning state.
What we learned
We learned that meaningful personalization is not primarily about changing tone or adding more content. It is about deciding where a learner’s limited attention will create the most value.
We also learned that an MVP does not require a complete knowledge graph to demonstrate an adaptive learning loop. Identifying one actionable gap—and allowing that gap to change the next learning allocation—is enough to make the feedback loop tangible.
Finally, separating exposure from demonstrated understanding produced a much more honest model of learning progress.
Accomplishments that we're proud of
- A complete loop from curiosity to a learning path, one focus, an understanding check, and reallocation
- Multiple learning goals with independently preserved progress
- GPT-5.6 recommendations that explain their reasoning without taking away learner choice
- Personalized listening lessons and one focused desk exercise
- Knowledge-gap detection with reinforce-now, reinforce-later, and switch-goal choices
- English and Japanese experiences sharing the same learning state
- A deployed, testable application with server-side OpenAI integration
What's next
Next, we plan to add:
- allocation changes when the learner’s circumstances change;
- pausing and completing learning goals;
- reflection on whether previous focus allocations were useful;
- scheduling around commuting and available desk time;
- richer material intake, including documents and images; and
- longer-term evaluation of whether recommendations improve demonstrated learning.
Built With
- codex
- gpt-5.6
- next.js
- openai
- react
- typescript
- vercel
- vitest
- zod
Log in or sign up for Devpost to join the conversation.