You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**Monday** is a voice-enabled AI learning companion designed to bridge the gap between natural language queries and high-quality educational content. Inspired by Marvel’s JARVIS and FRIDAY, and educational platforms like Khan Academy and 3Blue1Brown, Monday delivers tailored responses in three modes—Basic, Reasoning, and Deep Research—while integrating immersive visualizations, curated video content, and accessibility-first design.
11
-
12
-
Our mission: make learning adaptive, inclusive, and hands-free—whether you’re seeking quick facts, step-by-step reasoning, or deep academic research.
8
+
**Monday** is a voice-enabled AI learning companion designed to bridge the gap between natural language queries and high-quality educational content. Inspired by Marvel's JARVIS and FRIDAY, Monday delivers tailored responses in three modes—Basic, Reasoning, and Deep Research—while integrating immersive visualizations, curated video content, and accessibility-first design.
13
9
14
10
## Features
15
11
16
-
-**Three Learning Modes**:
17
-
-**Basic Mode** – Quick factual answers with citations.
18
-
-**Reasoning Mode** – Step-by-step logical explanations (triggered by the phrase "think about").
19
-
-**Deep Research Mode** – Multi-source investigations visualized as connected knowledge webs (triggered by the phrase "research into").
20
-
-**Voice-first interaction** for hands-free learning.
21
-
-**Real-time 3D visualizations** of concepts using Three.js & WebXR.
22
-
-**Curated educational Youtube video integration** from trusted sources.
23
-
-**Smart Search Algorithm** that extracts keywords from AI response content using NLP and filters results for educational, embeddable content.
24
-
-**Multi-modal feedback** combining text, speech (via ElevenLabs), and spatial panels.
25
-
-**VR-optional** design for immersive experiences without requiring a headset.
26
-
-**Accessibility-focused interface** for mobility- and vision-impaired users.
27
-
28
-
## Example Flow:
29
-
30
-
User: "Hey Monday, think about photosynthesis"
31
-
- AI Response: "Photosynthesis involves chlorophyll, sunlight, and carbon dioxide..."
The CommandProcessor manages voice-command routing and conversation context on the client. It checks whether the transcript contains the wake phrase (“hey monday”) or an ongoing conversation is active. Only then is the user’s command treated as actionable. On activation, it may start a new conversation session, timestamp the interaction, and dispatch the raw transcript to the backend (sendToBackend). Inputs outside an active session without the trigger phrase are ignored.
// ... (spatial and focus commands omitted for brevity)
204
-
}
205
-
})
206
-
207
-
```
208
-
**Description**: The server receives voice_command events and parses them to infer intent (e.g., greeting, basic Q&A, reasoning, deep research). For each type, it invokes the Perplexity service with the corresponding mode and the user’s query. The resulting answer—including content, citations, and, where applicable, a reasoning chain or research sources—is emitted back to the client as a monday_response with a type aligned to the mode.
209
-
210
-
## AI Query Processing (Perplexity Service Integration)
211
-
```ts
212
-
Copy
213
-
Edit
214
-
const result =awaitthis.makeRequest('/chat/completions', requestData)
**Description**: PerplexityService prepares a mode-specific request and calls the external API. It returns a structured result containing the main answer (content), any citations, and—when in reasoning mode—a parsed list of reasoning steps. Using the Sonar API, it also includes metadata such as token usage and the model identifier.
**Description:** In reasoning mode, answers are expected to include an ordered thought process. This utility scans the text for step indicators (e.g., “Step 1:” or “1.”), producing a structured array of steps with content and an initial confidence score. This enables the client to render reasoning as a clear, enumerated sequence.
256
-
257
-
## VR Spatial Response Visualization
258
-
```ts
259
-
Copy
260
-
Edit
261
-
function createSpatialPanels(response:any, mode:string, query:string):any[] {
262
-
const panels:any[] = []
263
-
264
-
// Main content panel
265
-
panels.push({
266
-
id: `panel_${Date.now()}_main`,
267
-
type: 'content',
268
-
position: [0, 1.5, -2],
269
-
rotation: [0, 0, 0],
270
-
title: mode==='greeting'?'Welcome to Monday':`Learning: ${query}`,
271
-
content: response.content,
272
-
isActive: true,
273
-
opacity: 1,
274
-
createdAt: Date.now()
275
-
})
276
-
277
-
// Citations panel if available
278
-
if (response.citations&&response.citations.length>0) {
279
-
panels.push({
280
-
id: `panel_${Date.now()}_citations`,
281
-
type: 'content',
282
-
position: [2, 1.2, -1.5],
283
-
rotation: [0, -30, 0],
284
-
title: 'Sources & Citations',
285
-
content: response.citations.map((c, i) =>
286
-
`${i+1}. ${c.title}\n${c.snippet}`
287
-
).join('\n\n'),
288
-
citations: response.citations,
289
-
isActive: false,
290
-
opacity: 0.8,
291
-
createdAt: Date.now()
292
-
})
293
-
}
294
-
295
-
// Reasoning panel for complex queries
296
-
if (response.reasoning&&response.reasoning.length>0) {
297
-
panels.push({
298
-
id: `panel_${Date.now()}_reasoning`,
299
-
type: 'reasoning',
300
-
position: [-2, 1.2, -1.5],
301
-
rotation: [0, 30, 0],
302
-
title: 'Reasoning Steps',
303
-
content: response.reasoning.map((r) =>
304
-
`Step ${r.step}: ${r.content}`
305
-
).join('\n\n'),
306
-
reasoning: response.reasoning,
307
-
isActive: false,
308
-
opacity: 0.8,
309
-
createdAt: Date.now()
310
-
})
311
-
}
312
-
313
-
returnpanels
314
-
}
315
-
```
316
-
317
-
**Description**: To bridge AI output into a 3D presentation, the backend constructs spatial panel objects. A main content panel is centered; optional citations and reasoning panels are positioned to the sides. Each panel has an ID, type, position/rotation, title, content, and opacity. These definitions are sent with the response so the client can render floating informational boards in VR.
64
+
***Frontend**: TypeScript with Three.js for 3D visualizations and WebXR for VR support
65
+
***Backend**: Node.js with Socket.IO for real-time voice command processing
66
+
***AI Integration**: Perplexity Sonar API for intelligent responses with reasoning extraction
67
+
***Voice Processing**: ElevenLabs for speech synthesis and natural language understanding
68
+
***Content Curation**: YouTube API integration with smart keyword extraction for educational videos
69
+
***Accessibility**: Voice-first design with spatial audio and haptic feedback support
0 commit comments