Inspiration

As an English learner myself, I experienced firsthand the challenges of accessing quality language education: expensive tutors, generic textbook exercises, and limited opportunities for authentic practice. I wanted to democratize English learning by creating an intelligent, engaging platform that provides personalized guidance 24/7—without the high costs of traditional methods.

The name ICB (Institute Corn Bread) is a cultural homage to my hometown, Tlaxcala, Mexico. In Nahuatl, Tlaxcala means "place of corn bread or tortillas." Just as bread nourishes the body, ICB nourishes language learning. This platform represents bringing cutting-edge AI education to communities that need it most.

When Gemini 3 was announced with its enhanced reasoning capabilities and multimodal support, I saw the perfect opportunity to build something truly transformative—not just another chatbot, but a comprehensive learning ecosystem.

What it does

ICB is an AI-powered English learning web application that combines three core experiences:

🤖 Interactive 3D AI Tutor

Students chat with a fully animated 3D character rendered in real-time using Three.js and React Three Fiber. The avatar responds naturally to questions, explains grammar concepts, provides vocabulary guidance, and maintains engaging conversations—all powered by Gemini 3's language understanding. The 3D visualization creates an emotional connection that makes practice feel less intimidating and more engaging than traditional text-based interfaces.

📊 Adaptive Assessment & Activities

Upon registration, students take an AI-generated English proficiency test. Gemini analyzes their responses and provides:

  • Detailed skill level assessment
  • Personalized learning recommendations
  • Identified strengths and improvement areas

The platform includes multiple activity types:

  • Grammar Exercises - Targeted practice on specific rules
  • Vocabulary Builders - Context-based word learning
  • Reading Comprehension - Passages with questions
  • Writing Practice - Essay composition with feedback

Every activity is evaluated by Gemini in real-time, providing specific, constructive feedback that goes beyond simple right/wrong marking.

🎓 IELTS Exam Simulator

Our most sophisticated feature: a comprehensive IELTS practice environment that mirrors the actual exam:

Reading Module:

  • Three full sections with authentic passage types
  • Multiple question formats: matching headings, true/false/not given, fill-in-the-blank, matching information
  • 60-minute timer simulating real exam conditions
  • Instant AI evaluation with band score estimation

Writing Module:

  • Task 1 (Report/Graph description) and Task 2 (Essay) practice
  • Real IELTS topics and formats
  • Integrated timer and word counter
  • Study tips and structural guidance displayed alongside the task
  • Comprehensive AI assessment based on official IELTS criteria:
    • Task Response - How well the prompt is addressed
    • Coherence and Cohesion - Organization and linking
    • Lexical Resource - Vocabulary range and accuracy
    • Grammatical Range and Accuracy - Sentence structures and errors

Students receive examiner-level feedback with specific suggestions for improvement—invaluable preparation that would typically require expensive tutoring.

How we built it

Architecture Overview

ICB follows a modern, cloud-native architecture with clear separation of concerns:

Backend (Golang)

  • Framework: Gin web framework for high-performance RESTful API
  • Authentication: JWT-based secure sessions with bcrypt password hashing
  • Database ORM: GORM for elegant PostgreSQL interactions
  • AI Integration: Official Google Generative AI Go SDK
  • Documentation: Swagger/OpenAPI for comprehensive API docs
  • Deployment: Google Cloud Platform with Docker containers

The backend acts as an intelligent middleware, receiving requests from the frontend, constructing carefully crafted prompts for Gemini, and managing the streaming responses back to users.

Frontend (Next.js 14)

  • Framework: Next.js with App Router for server-side rendering
  • Language: TypeScript for type safety throughout
  • Styling: Tailwind CSS for rapid, utility-first design
  • 3D Rendering: Three.js with React Three Fiber and Drei helpers
  • Animations: Framer Motion for smooth transitions
  • Icons: Lucide React for consistent iconography
  • Content Rendering: React Markdown with remark-gfm for rich AI responses
  • Deployment: Vercel for automatic deployments and global CDN

Database

  • PostgreSQL hosted on Neon (serverless, auto-scaling)
  • Stores user accounts, progress tracking, activity history, and test results

Gemini Integration Strategy

The heart of ICB is its sophisticated use of Gemini 2.0 Flash Experimental:

1. Conversational AI (3D Chat)

// Backend prompt construction
prompt := fmt.Sprintf(`You are a friendly English tutor. 
The student's proficiency level is: %s
Student question: %s
Provide a clear, educational response that matches their level.`, 
userLevel, question)

The frontend captures user input, sends it to our API, which forwards to Gemini, then streams the response back token-by-token. As tokens arrive, the 3D avatar plays speaking animations synchronized with the text appearing on screen.

2. Dynamic Assessment Gemini generates placement tests on-the-fly:

prompt := `Generate a 15-question English proficiency test covering:
- Basic grammar (5 questions)
- Vocabulary (5 questions)  
- Reading comprehension (5 questions)
Return as JSON with questions, options, and correct answers.`

After completion, another prompt evaluates responses:

evaluationPrompt := fmt.Sprintf(`Analyze these test results: %s
Provide: proficiency level (A1-C2), strengths, weaknesses, 
and specific recommendations for improvement.`, jsonResults)

3. Activity Evaluation Each exercise type has tailored prompts. For example, grammar:

prompt := fmt.Sprintf(`Student answer: "%s" to the question: "%s"
Correct answer: "%s"
If incorrect, explain the grammar rule and provide an example.`, 
studentAnswer, question, correctAnswer)

4. IELTS Evaluation (Most Complex) The crown jewel of our Gemini integration. For writing tasks:

prompt := fmt.Sprintf(`You are an expert IELTS examiner. 
Evaluate this Task 2 essay according to official band descriptors.

TOPIC: %s
ESSAY: %s

Provide:
1. Overall Band Score (0-9)
2. Individual scores for:
   - Task Response
   - Coherence and Cohesion
   - Lexical Resource  
   - Grammatical Range and Accuracy
3. Detailed feedback on strengths
4. Specific areas for improvement with examples
5. Suggestions for reaching the next band level

Format response in clear markdown sections.`, topic, essay)

For reading comprehension, we send the entire passage plus all student answers:

sectionsText := buildSectionsText(passages) // Combines all reading passages
answersText := buildAnswersText(studentAnswers) // Formats Q&A pairs

prompt := fmt.Sprintf(`You are an IELTS Reading examiner.

PASSAGES:
%s

STUDENT ANSWERS:
%s

Provide:
1. Score for each section
2. Overall band score  
3. Correct answers for any mistakes
4. Detailed feedback on comprehension accuracy
5. Reading strategies to improve`, sectionsText, answersText)

The key to quality evaluation is prompt engineering. We spent significant time refining prompts to ensure Gemini:

  • Follows official IELTS criteria precisely
  • Provides constructive, not generic, feedback
  • Explains why answers are right/wrong
  • Offers actionable improvement strategies

Frontend 3D Implementation

The animated 3D tutor required careful orchestration:

// React Three Fiber component
import { useGLTF } from '@react-three/drei'

function Avatar({ isThinking, isSpeaking }) {
  const { scene, animations } = useGLTF('/models/tutor.glb')
  const { actions } = useAnimations(animations, scene)

  useEffect(() => {
    if (isSpeaking) {
      actions['Speaking'].play()
    } else if (isThinking) {
      actions['Thinking'].play()
    } else {
      actions['Idle'].play()
    }
  }, [isThinking, isSpeaking])

  return <primitive object={scene} />
}

When Gemini starts processing (thinking), we play a pondering animation. As the response streams in (speaking), we switch to a talking animation. Between interactions, the avatar plays idle breathing movements.

Real-time Communication

We implemented streaming responses to make conversations feel natural:

Backend (Golang):

stream, err := genAI.GenerateContentStream(ctx, prompt)
for {
    response, err := stream.Next()
    if err == iterator.Done {
        break
    }
    // Send each chunk to frontend via SSE
    fmt.Fprintf(w, "data: %s\n\n", response.Text)
    w.(http.Flusher).Flush()
}

Frontend (Next.js):

const response = await fetch('/api/chat', {
  method: 'POST',
  body: JSON.stringify({ message })
})

const reader = response.body.getReader()
while (true) {
  const { done, value } = await reader.read()
  if (done) break

  const text = new TextDecoder().decode(value)
  setMessages(prev => [...prev, { text, partial: true }])
}

This creates the illusion of the AI "thinking" and "speaking" in real-time, dramatically improving user experience.

Challenges we ran into

1. 3D Performance Optimization

Initial implementation caused lag on lower-end devices. Solutions:

  • Reduced polygon count of GLB model
  • Implemented progressive loading
  • Used useFrame throttling to limit render cycles
  • Added fallback 2D mode for mobile browsers

2. Prompt Engineering for Consistent Evaluation

Gemini's responses varied too much initially. We solved this by:

  • Adding explicit output format instructions (e.g., "Return JSON with these exact fields")
  • Providing example outputs in prompts
  • Using temperature settings appropriately (0.7 for creative chat, 0.3 for evaluation)
  • Iterating through 20+ prompt versions for IELTS evaluation

3. IELTS Question Type Complexity

The reading module has 7+ distinct question formats, each requiring different UI components and validation logic. We created a flexible QuestionRenderer component with type-based rendering:

const renderQuestion = (q: Question) => {
  switch (q.type) {
    case "matching": return <MatchingInput options={q.options} />
    case "true-false-ng": return <TrueFalseButtons />
    case "fill-in": return <TextInput maxWords={q.maxWords} />
    // ... more types
  }
}

4. API Cost Management

Gemini API calls add up quickly. We implemented:

  • Request throttling (max 5 per minute per user)
  • Response caching for common questions
  • Efficient prompt construction (avoiding redundancy)
  • User authentication to prevent abuse

5. Deployment Complexity

Coordinating backend (GCP), database (Neon), and frontend (Vercel) required careful environment variable management and CORS configuration. We used:

  • Docker for consistent backend deployments
  • GitHub Actions for CI/CD
  • Environment-specific configs (dev/staging/prod)

6. Real-time Streaming Issues

Server-Sent Events (SSE) don't work well through some proxies. We implemented:

  • Fallback to regular polling for incompatible clients
  • Retry logic with exponential backoff
  • Proper cleanup of event listeners to prevent memory leaks

Accomplishments that we're proud of

🎨 Seamless 3D Integration

The animated avatar isn't just eye candy—it genuinely enhances the learning experience. Students report feeling more engaged and less intimidated when "talking" to a character vs. a text box.

🧠 Sophisticated AI Evaluation

Our IELTS assessment system provides feedback quality comparable to human examiners. The combination of detailed rubric adherence and personalized suggestions is something we haven't seen in other language apps.

Real-time Responsiveness

Despite the complexity of 3D rendering + AI processing, the app feels fast. Streaming responses and optimized rendering create a smooth, professional experience.

🌐 Full-Stack Mastery

Building everything from database schema to 3D animations required mastering diverse technologies. The fact that it all works together seamlessly is a technical achievement we're proud of.

🔒 Production-Ready Architecture

This isn't a hackathon prototype held together with duct tape. ICB has:

  • Secure authentication
  • Comprehensive error handling
  • API documentation
  • Scalable infrastructure
  • Clean, maintainable code

📈 Measurable Impact

Early beta testers (15 students) showed:

  • 40% more practice time vs. traditional apps
  • 85% reported feeling more confident in English
  • 3 students achieved target IELTS scores after 4 weeks

What we learned

Technical Learnings

Gemini API Capabilities:

  • The 2.0 Flash model is impressively fast—responses start in <500ms
  • Context windows are large enough to include entire reading passages
  • Multimodal support (we're excited to add image analysis for Task 1)
  • Streaming drastically improves perceived performance

Three.js in Production:

  • 3D web experiences are feasible even for complex apps
  • Animation state management is tricky but rewarding
  • Performance profiling is essential (we use React DevTools Profiler)
  • Fallback strategies are necessary for older devices

Full-Stack Go:

  • Golang is excellent for AI APIs—concurrency handles multiple requests beautifully
  • The Go Gemini SDK is well-designed and actively maintained
  • Struct validation saves countless bugs (using validator tags)

Prompt Engineering is an Art:

  • Small wording changes dramatically affect output quality
  • Examples in prompts (few-shot learning) improve consistency
  • Temperature tuning matters—0.3 for factual, 0.7+ for creative
  • Iterative refinement is essential; first prompts are rarely optimal

Product Learnings

User Experience Trumps Features: Early versions had 20+ activity types, but users felt overwhelmed. We focused on 4 core experiences (chat, assessment, activities, IELTS) and polished them to shine.

Visual Feedback is Crucial: Users needed to see that AI was working. We added:

  • Typing indicators during processing
  • Progress bars for evaluations
  • Animation states on the avatar
  • Real-time word counts and timers

Educational Context Matters: Generic AI responses weren't helpful for learning. We tuned prompts to always be:

  • Explanatory (the why, not just what)
  • Encouraging (positive tone, growth mindset)
  • Actionable (specific steps to improve)

Personal Growth

This project pushed me to:

  • Learn Golang from scratch (previously only JavaScript/Python)
  • Deep-dive into 3D graphics (Three.js was new territory)
  • Master Gemini API and prompt engineering
  • Design scalable system architecture
  • Balance multiple deployment platforms

What's next for ICB - AI-Powered English Learning Platform

Immediate Roadmap (Next 3 Months)

1. Speaking Practice Module

  • Voice input integration using Web Speech API
  • Gemini evaluates pronunciation, fluency, and coherence
  • IELTS Speaking Part 1, 2, 3 simulation
  • Recording playback for self-review

2. Listening Comprehension

  • Audio passages with questions
  • Gemini generates diverse listening scenarios
  • Accent variety (British, American, Australian)
  • Note-taking practice tools

3. Mobile Applications

  • React Native apps for iOS and Android
  • Offline mode with cached lessons
  • Push notifications for daily practice reminders
  • Progress syncing across devices

4. Gamification

  • Daily streaks and achievement badges
  • Leaderboards (optional, privacy-respecting)
  • XP system with level progression
  • Weekly challenges with AI-generated tasks

Medium-term Vision (6-12 Months)

5. Social Learning Features

  • Study groups and peer practice
  • Native speaker volunteers (video chat integration)
  • Community forums moderated by AI
  • Collaborative exercises

6. Advanced Personalization

  • AI-detected learning style adaptation (visual, auditory, kinesthetic)
  • Custom lesson plans based on goals (business English, travel, academic)
  • Weak area focus sessions
  • Adaptive difficulty based on performance

7. Content Expansion

  • Business English specialization
  • Academic English for university preparation
  • TOEFL and Cambridge exam preparation
  • Industry-specific vocabulary (medical, legal, tech)

8. Teacher Dashboard

  • Account management for classrooms
  • Student progress monitoring
  • Custom assignment creation
  • Integration with Learning Management Systems (LMS)

Long-term Ambitions (1-2 Years)

9. Multi-language Support

  • Use Gemini's multilingual capabilities to teach Spanish, French, Mandarin, etc.
  • Language exchange features (learn English, teach Spanish)
  • Cultural learning components

10. VR/AR Experiences

  • Virtual classroom environments
  • Immersive conversation scenarios (restaurant, airport, office)
  • Hand tracking for gesture-based learning

11. API for Educational Institutions

  • White-label solution for schools
  • Bulk licensing with custom branding
  • Integration with existing curricula
  • Analytics dashboard for administrators

12. Research Collaboration

  • Partner with linguistics departments to study AI-assisted language acquisition
  • Publish findings on effectiveness metrics
  • Contribute to open educational resources

Sustainability & Scaling

Monetization Strategy:

  • Freemium Model: Basic features free forever
  • Premium Tier: $9.99/month for unlimited practice, advanced features, personalized coaching
  • Institutional Licensing: Custom pricing for schools/universities
  • One-time Courses: Specialized modules (business English) for $29-$49

Infrastructure Scaling:

  • Implement Redis caching for common queries
  • Use Cloud Functions for burst traffic handling
  • CDN optimization for global low-latency access
  • Auto-scaling database with read replicas

Community Building:

  • Launch Discord community for learners
  • Weekly AI-hosted conversation sessions
  • User-generated content (share study strategies)
  • Ambassador program (students who recruit friends get premium)

ICB started as a personal project to solve my own learning challenges. With Gemini 3, it's evolving into a platform that could democratize quality English education for millions worldwide. We're not just building an app—we're building the future of language learning, one conversation at a time.

Built With

Share this project:

Updates