diff --git a/docusaurus.config.ts b/docusaurus.config.ts
index ad24f8a2..9eedba5f 100644
--- a/docusaurus.config.ts
+++ b/docusaurus.config.ts
@@ -91,10 +91,6 @@ const config: Config = {
{
from: '/webinar-2025-12-18',
to: '/docs/one-ai/Webinars/webinar-2025-12-18',
- },
- {
- from: '/webinar-2026-01-28',
- to: '/docs/one-ai/Webinars/webinar-2026-01-28',
}
],
}],
@@ -168,21 +164,15 @@ const config: Config = {
className: "navbar__dropdown--products",
items: [
{
- to: "/one-ai",
- label: "ONE AI",
+ to: "/",
+ label: "ONE AI Agent",
className: "dropdown__link--highlight",
+ activeBasePath: "__none__",
},
{
- to: "/docs/one-ai/getting-started/quick-start-guide",
- label: "Get Started",
- },
- {
- to: "/docs/one-ai/demos/overview",
- label: "Demo Projects",
- },
- {
- to: "/docs/one-ai/supported-vendors",
- label: "Supported Hardware",
+ to: "/one-ai",
+ label: "ONE AI Desktop",
+ className: "dropdown__link--highlight",
},
{
to: "/studio",
@@ -441,7 +431,7 @@ const config: Config = {
cta: 'Register Now',
},
},
- // activeAnnouncement: 'qualityControlWebinar',
+ activeAnnouncement: 'qualityControlWebinar',
} satisfies Preset.ThemeConfig,
};
diff --git a/i18n/de/code.json b/i18n/de/code.json
index 99a46781..803cd4c1 100644
--- a/i18n/de/code.json
+++ b/i18n/de/code.json
@@ -1,21 +1,12 @@
{
"homehero.title1": {
- "message": "Lass ONE AI"
+ "message": "So Automatisieren Wir"
},
"homehero.title2": {
- "message": "deine KI entwickeln"
- },
- "homehero.no_universal_models": {
- "message": "Keine universellen KI-Modelle."
- },
- "homehero.custom_vision_ai": {
- "message": "Vision-AI, genau für deine Anwendung."
- },
- "homehero.subtitle1": {
- "message": "Vision und Edge AI Entwicklung,"
+ "message": "KI-Entwicklung"
},
- "homehero.subtitle2": {
- "message": "Automatisiert in einer Software"
+ "homehero.subtitle": {
+ "message": "Erlebe, wie deine individuelle KI erstellt wird, nachdem unser KI-Agent die richtige Konfiguration gefunden hat."
},
"homehero.button.download": {
"message": "Kostenloser Download"
@@ -32,6 +23,72 @@
"homehero.benefit.requirements": {
"message": "Jede Anforderung"
},
+ "homehero.chat.history.title": {
+ "message": "Verlauf"
+ },
+ "homehero.chat.history.pcb": {
+ "message": "Leiterplatten-Inspektion"
+ },
+ "homehero.chat.history.fruit": {
+ "message": "Obst-Sortierung"
+ },
+ "homehero.chat.history.apple": {
+ "message": "Apfel QC"
+ },
+ "homehero.chat.user1": {
+ "message": "Mach Apfel QC"
+ },
+ "homehero.chat.ai1": {
+ "message": "Soll ich helfen bei Datensatz oder Hardware zum Aufnehmen?"
+ },
+ "homehero.chat.user2": {
+ "message": "Ich hab schon Trainings Daten"
+ },
+ "homehero.chat.ai2": {
+ "message": "Hier ist dein fertiges ONE AI Projekt"
+ },
+ "homehero.chat.button.open": {
+ "message": "Projekt Öffnen"
+ },
+ "homehero.chat.newchat": {
+ "message": "Neuer Chat"
+ },
+ "homehero.chat.welcome.title": {
+ "message": "Starte Dein KI-Projekt"
+ },
+ "homehero.chat.welcome.desc": {
+ "message": "Beschreibe was du bauen möchtest und ONE AI erstellt es für dich"
+ },
+ "homehero.chat.welcome.button": {
+ "message": "Demo Starten"
+ },
+ "homehero.chat.lefttitle": {
+ "message": "So funktioniert's"
+ },
+ "homehero.chat.step1": {
+ "message": "Chatte mit Agent um Hardware, Datensatz und KI Projekt zu erstellen"
+ },
+ "homehero.chat.step1.title": {
+ "message": "Projekt konfigurieren"
+ },
+ "homehero.chat.step2": {
+ "message": "Lade Trainingsdaten rein und lasse ONE AI KI erstellen"
+ },
+ "homehero.chat.step2.title": {
+ "message": "Modell trainieren"
+ },
+ "homehero.chat.step3": {
+ "message": "Chatte mit Agent um KI zu integrieren"
+ },
+ "homehero.chat.step3.title": {
+ "message": "Deployen & Integrieren"
+ },
+ "homehero.chat.result": {
+ "message": "Deine KI ist fertig"
+ },
+ "homehero.chat.input.placeholder": {
+ "message": "Nachricht eingeben..."
+ },
"homepage.every": {
"message": "Jede "
},
@@ -414,18 +471,6 @@
"oneai.hero.nextgen.title": {
"message": "Die nächste Generation der KI-Entwicklung"
},
- "oneai.hero.main.title": {
- "message": "Lass ONE AI Deine Vision- und Edge-AI-Projekte fertigstellen"
- },
- "oneai.hero.main.subtitle": {
- "message": "Sieh die Kraft Deines Datensatzes mit der richtigen KI."
- },
- "oneai.hero.main.subtitle2": {
- "message": "Automatisch maßgeschneidert für Deine Bedürfnisse und exportiert für jede Hardware."
- },
- "oneai.hero.examples": {
- "message": "Beispiel-Projekte"
- },
"homepage.seo.title": {
"message": "ONE WARE - Die nächste Generation der Computer Vision und Edge AI Entwicklung"
},
@@ -1864,6 +1909,12 @@
"chathero.button.showcase": {
"message": "Showcase"
},
+ "chathero.professional.prefix": {
+ "message": "Schon KI-Experte?"
+ },
+ "chathero.professional.link": {
+ "message": "Entdecke unsere Tools für Profis"
+ },
"signupmodal.attach.title": {
"message": "Anmelden um Dateien hochzuladen"
},
@@ -1883,7 +1934,7 @@
"message": "Abbrechen"
},
"orbitindustries.title": {
- "message": "Entdecke unsere Vorteile"
+ "message": "Explore Our Benefits"
},
"orbitindustries.subtitle": {
"message": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
@@ -1892,87 +1943,24 @@
"message": "Jede Hardware"
},
"orbitindustries.anyHardware.description": {
- "message": "Bringe KI auf jede Hardware. Von CPUs bis FPGAs - ONE AI optimiert Modelle für Speicher, FPS und Genauigkeit."
+ "message": "KI für jede Hardware, egal wie wenig Ressourcen. Von Mikrocontrollern bis FPGAs - ONE AI optimiert für deine exakten Anforderungen."
},
"orbitindustries.anyRequirements.label": {
"message": "Jede Anforderung"
},
"orbitindustries.anyRequirements.description": {
- "message": "Entwickelt für extreme Anforderungen mit ultra-niedriger Latenz, Echtzeitfähigkeit oder maximalem Durchsatz."
+ "message": "KI egal wie schnell sie sein muss. Entwickelt für die anspruchsvollsten Echtzeitanwendungen mit garantierter Performance."
},
"orbitindustries.anyApplication.label": {
"message": "Jede Anwendung"
},
"orbitindustries.anyApplication.description": {
- "message": "Von Robotern mit 3D-Kameras bis zu MRT-Systemen mit Dutzenden Bildern pro Analyse - ONE AI erstellt immer die beste KI für die Aufgabe."
+ "message": "Egal wie komplex die Anwendung ist oder wie untypisch die Daten - ONE AI erstellt maßgeschneiderte neuronale Netze für deinen spezifischen Anwendungsfall."
},
"orbitindustries.resultsInMinutes.label": {
"message": "Ergebnisse in Minuten"
},
"orbitindustries.resultsInMinutes.description": {
"message": "Kann von jedem Entwickler bedient werden. Erhalte produktionsreife KI-Modelle in Minuten statt Monaten - keine ML-Expertise erforderlich."
- },
- "careers.detail.location": {
- "message": "Standort"
- },
- "careers.detail.startDate": {
- "message": "Start"
- },
- "careers.detail.type": {
- "message": "Typ"
- },
- "careers.detail.contact": {
- "message": "Kontakt"
- },
- "careers.detail.applyNow": {
- "message": "Jetzt Bewerben"
- },
- "careers.form.name": {
- "message": "Name"
- },
- "careers.form.email": {
- "message": "E-Mail"
- },
- "careers.form.github": {
- "message": "GitHub Benutzername"
- },
- "careers.form.resume.drag": {
- "message": "Lebenslauf hier ablegen oder klicken zum Hochladen"
- },
- "careers.form.resume.format": {
- "message": "Nur PDF, max. 10MB"
- },
- "careers.form.submit": {
- "message": "Bewerbung absenden"
- },
- "careers.form.submitting": {
- "message": "Wird gesendet..."
- },
- "careers.form.success.title": {
- "message": "Bewerbung eingereicht!"
- },
- "careers.form.success.message": {
- "message": "Vielen Dank für Ihre Bewerbung. Wir werden sie prüfen und uns in Kürze bei Ihnen melden."
- },
- "careers.form.error": {
- "message": "Beim Absenden Ihrer Bewerbung ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut oder kontaktieren Sie uns unter career@one-ware.com."
- },
- "careers.form.alreadyApplied": {
- "message": "Sie haben sich bereits mit dieser E-Mail-Adresse für diese Position beworben."
- },
- "careers.form.error.fileType": {
- "message": "Bitte laden Sie eine PDF-Datei hoch"
- },
- "careers.form.error.fileSize": {
- "message": "Die Dateigröße muss kleiner als 10MB sein"
- },
- "careers.form.error.resumeRequired": {
- "message": "Bitte laden Sie Ihren Lebenslauf hoch"
- },
- "careers.form.privacy": {
- "message": "Mit dem Absenden akzeptieren Sie unsere"
- },
- "careers.form.privacyLink": {
- "message": "Datenschutzrichtlinie"
}
}
diff --git a/src/components/ChatHero/SignUpModal.tsx b/src/components/ChatHero/SignUpModal.tsx
new file mode 100644
index 00000000..e85e33d3
--- /dev/null
+++ b/src/components/ChatHero/SignUpModal.tsx
@@ -0,0 +1,116 @@
+import React, { useEffect } from "react";
+import Translate from "@docusaurus/Translate";
+import { useColorMode } from "@docusaurus/theme-common";
+
+export type ModalTrigger = "attach" | "send";
+
+interface SignUpModalProps {
+ isOpen: boolean;
+ onClose: () => void;
+ trigger: ModalTrigger;
+}
+
+export default function SignUpModal({ isOpen, onClose, trigger }: SignUpModalProps) {
+ const { colorMode } = useColorMode();
+ const isDarkMode = colorMode === "dark";
+
+ useEffect(() => {
+ if (isOpen) {
+ document.body.style.overflow = "hidden";
+ } else {
+ document.body.style.overflow = "";
+ }
+ return () => {
+ document.body.style.overflow = "";
+ };
+ }, [isOpen]);
+
+ useEffect(() => {
+ const handleEsc = (e: KeyboardEvent) => {
+ if (e.key === "Escape") {
+ onClose();
+ }
+ };
+ if (isOpen) {
+ window.addEventListener("keydown", handleEsc);
+ }
+ return () => window.removeEventListener("keydown", handleEsc);
+ }, [isOpen, onClose]);
+
+ if (!isOpen) return null;
+
+ return (
+
+
e.stopPropagation()}
+ >
+
+ {trigger === "attach" ? (
+ <>
+
+ Sign in to upload files
+
+
+
+ Support for up to 10 files of any file type
+
+
+ >
+ ) : (
+ <>
+
+ Sign in to create your AI
+
+
+
+ Get started with your custom AI model
+
+
+ >
+ )}
+
+
+
+
+ Sign In
+
+
+ Cancel
+
+
+
+
+
+
+ );
+}
diff --git a/src/components/ChatHero/index.tsx b/src/components/ChatHero/index.tsx
new file mode 100644
index 00000000..9b41f0a5
--- /dev/null
+++ b/src/components/ChatHero/index.tsx
@@ -0,0 +1,262 @@
+import React, { useState, useEffect } from "react";
+import Translate from "@docusaurus/Translate";
+import { useColorMode } from "@docusaurus/theme-common";
+import SignUpModal, { ModalTrigger } from "./SignUpModal";
+import HeroBackground from "../HeroBackground";
+
+const STORAGE_KEY = "chathero_prompt";
+const STORAGE_EXPIRY_DAYS = 90;
+
+function getStoredPrompt(): string {
+ if (typeof window === "undefined") return "";
+ try {
+ const stored = localStorage.getItem(STORAGE_KEY);
+ if (!stored) return "";
+ const { value, expiry } = JSON.parse(stored);
+ if (Date.now() > expiry) {
+ localStorage.removeItem(STORAGE_KEY);
+ return "";
+ }
+ return value || "";
+ } catch {
+ return "";
+ }
+}
+
+function savePrompt(value: string) {
+ if (typeof window === "undefined") return;
+ try {
+ const expiry = Date.now() + STORAGE_EXPIRY_DAYS * 24 * 60 * 60 * 1000;
+ localStorage.setItem(STORAGE_KEY, JSON.stringify({ value, expiry }));
+ } catch {}
+}
+
+export default function ChatHero() {
+ const { colorMode } = useColorMode();
+ const isDarkMode = colorMode === "dark";
+ const [isModalOpen, setIsModalOpen] = useState(false);
+ const [modalTrigger, setModalTrigger] = useState("send");
+ const [prompt, setPrompt] = useState("");
+
+ useEffect(() => {
+ setPrompt(getStoredPrompt());
+ }, []);
+
+ const handlePromptChange = (e: React.ChangeEvent) => {
+ const value = e.target.value;
+ setPrompt(value);
+ savePrompt(value);
+ };
+
+ const handleAttachClick = (e: React.MouseEvent) => {
+ e.stopPropagation();
+ setModalTrigger("attach");
+ setIsModalOpen(true);
+ };
+
+ const handleSendClick = (e: React.MouseEvent) => {
+ e.stopPropagation();
+ setModalTrigger("send");
+ setIsModalOpen(true);
+ };
+
+ const scrollToSection = (id: string) => {
+ const element = document.getElementById(id);
+ if (element) {
+ const navbarHeight = 60;
+ const elementPosition = element.getBoundingClientRect().top + window.scrollY;
+ window.scrollTo({
+ top: elementPosition - navbarHeight,
+ behavior: "smooth",
+ });
+ }
+ };
+
+ return (
+
+
+
+
+ Create your Custom AI
+
+
+
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ scrollToSection("demo")}
+ className="chathero-btn-outline button button--primary button--outline button--lg"
+ style={{ background: isDarkMode ? "#161616" : "#ffffff" }}
+ >
+ See How It Works
+
+ scrollToSection("video")}
+ className="chathero-btn-filled button button--primary button--lg"
+ >
+ Showcase
+
+
+
+
+
+
+
+ setIsModalOpen(false)}
+ trigger={modalTrigger}
+ />
+
+
+
+ );
+}
diff --git a/src/components/HomeHero/SoftwareWindow/ChatInterface.tsx b/src/components/HomeHero/SoftwareWindow/ChatInterface.tsx
new file mode 100644
index 00000000..d4afc820
--- /dev/null
+++ b/src/components/HomeHero/SoftwareWindow/ChatInterface.tsx
@@ -0,0 +1,563 @@
+import React, { useState, useEffect, useRef } from "react";
+import Translate, { translate } from "@docusaurus/Translate";
+
+interface ChatMessage {
+ id: number;
+ sender: "user" | "ai";
+ contentId: string;
+ defaultContent: string;
+ delay: number;
+ hasButton?: boolean;
+}
+
+const chatMessages: ChatMessage[] = [
+ {
+ id: 1,
+ sender: "user",
+ contentId: "homehero.chat.user1",
+ defaultContent: "Make Apple QC",
+ delay: 600,
+ },
+ {
+ id: 2,
+ sender: "ai",
+ contentId: "homehero.chat.ai1",
+ defaultContent: "Should I help with dataset or hardware for recording?",
+ delay: 2000,
+ },
+ {
+ id: 3,
+ sender: "user",
+ contentId: "homehero.chat.user2",
+ defaultContent: "I already have training data",
+ delay: 3500,
+ },
+ {
+ id: 4,
+ sender: "ai",
+ contentId: "homehero.chat.ai2",
+ defaultContent: "Here is your finished ONE AI project",
+ delay: 5200,
+ hasButton: true,
+ },
+];
+
+interface ChatHistoryItem {
+ id: string;
+ titleId: string;
+ defaultTitle: string;
+ isCurrent?: boolean;
+}
+
+const chatHistory: ChatHistoryItem[] = [
+ { id: "apple", titleId: "homehero.chat.history.apple", defaultTitle: "Apple QC", isCurrent: true },
+ { id: "fruit", titleId: "homehero.chat.history.fruit", defaultTitle: "Fruit Sorting" },
+ { id: "pcb", titleId: "homehero.chat.history.pcb", defaultTitle: "PCB Inspection" },
+];
+
+interface ChatInterfaceProps {
+ onComplete: () => void;
+ isActive: boolean;
+}
+
+export default function ChatInterface({ onComplete, isActive }: ChatInterfaceProps) {
+ const [conversationStarted, setConversationStarted] = useState(false);
+ const [visibleMessages, setVisibleMessages] = useState([]);
+ const [isTyping, setIsTyping] = useState(false);
+ const messageTimersRef = useRef([]);
+ const messagesEndRef = useRef(null);
+
+ const startConversation = () => {
+ setConversationStarted(true);
+ };
+
+ useEffect(() => {
+ if (messagesEndRef.current && messagesEndRef.current.parentElement) {
+ const container = messagesEndRef.current.parentElement;
+ container.scrollTop = container.scrollHeight;
+ }
+ }, [visibleMessages]);
+
+ useEffect(() => {
+ if (!isActive || !conversationStarted) {
+ return;
+ }
+
+ chatMessages.forEach((msg) => {
+ if (msg.sender === "ai") {
+ const typingTimer = setTimeout(() => {
+ setIsTyping(true);
+ }, msg.delay - 800);
+ messageTimersRef.current.push(typingTimer);
+ }
+
+ const timer = setTimeout(() => {
+ setIsTyping(false);
+ setVisibleMessages((prev) => [...prev, msg.id]);
+ }, msg.delay);
+ messageTimersRef.current.push(timer);
+ });
+
+ return () => {
+ messageTimersRef.current.forEach(timer => clearTimeout(timer));
+ messageTimersRef.current = [];
+ };
+ }, [isActive, conversationStarted]);
+
+ const handleButtonClick = () => {
+ onComplete();
+ };
+
+ return (
+
+
+
+ History
+
+
+
+ {chatHistory.map((item) => (
+
+
+
+ {item.defaultTitle}
+
+
+ ))}
+
+
+
+
+
+
+
+ New
+
+
+
+
+
+ {!conversationStarted ? (
+
+
+
+
+
+ Describe what you want to build
+
+
+
+
+
+
+
+ Start Demo
+
+
+ ) : (
+ <>
+ {chatMessages.map((msg) => {
+ const isVisible = visibleMessages.includes(msg.id);
+ const isUser = msg.sender === "user";
+
+ if (!isVisible) return null;
+
+ return (
+
+ {!isUser && (
+
+ )}
+
+
{msg.defaultContent}
+
+ {msg.hasButton && (
+
+
+
+
+ Open Project
+
+ )}
+
+ {isUser && (
+
+ )}
+
+ );
+ })}
+
+ {isTyping && (
+
+ )}
+
+ >
+ )}
+
+
+
+
+
+
+
+ );
+}
diff --git a/src/components/HomeHero/SoftwareWindow/index.tsx b/src/components/HomeHero/SoftwareWindow/index.tsx
index cd92eae0..8bb02e19 100644
--- a/src/components/HomeHero/SoftwareWindow/index.tsx
+++ b/src/components/HomeHero/SoftwareWindow/index.tsx
@@ -6,6 +6,7 @@ import CameraStation from "./CameraStation";
import TopMetrics from "./TopMetrics";
import TrainingProgressOverlay from "./TrainingProgressOverlay";
import DeployView from "./DeployView";
+import ChatInterface from "./ChatInterface";
import { usePerformance } from "../index";
import { useDelayedUnmount } from '../hooks/useDelayedUnmount';
@@ -81,6 +82,8 @@ interface SoftwareWindowProps {
setTrainingPanelRef?: (ref: HTMLDivElement | null) => void;
style?: React.CSSProperties;
isGhostHovering?: boolean;
+ mode?: 'demo' | 'chat';
+ onChatComplete?: () => void;
}
const ROW_1_HEIGHT = "55%";
@@ -108,8 +111,17 @@ export default function SoftwareWindow({
hasTrainingData,
setTrainingPanelRef,
style,
- isGhostHovering
+ isGhostHovering,
+ mode = 'demo',
+ onChatComplete
}: SoftwareWindowProps) {
+ const [chatCompleted, setChatCompleted] = useState(false);
+ const isChatMode = mode === 'chat' && !chatCompleted;
+
+ const handleChatComplete = useCallback(() => {
+ setChatCompleted(true);
+ onChatComplete?.();
+ }, [onChatComplete]);
const [isTraining, setIsTraining] = useState(false);
const [isCollapsed, setIsCollapsed] = useState(false);
const [hasClickedConveyor, setHasClickedConveyor] = useState(false);
@@ -549,17 +561,34 @@ export default function SoftwareWindow({
display: "flex",
flexDirection: "column",
gap: "clamp(8px, 1.5vw, 16px)",
- transition: "gap 1.2s cubic-bezier(0.2, 0.8, 0.2, 1)"
}}
>
+
+
+
isDragging && setIsHoveringPanel(true)}
+ onMouseEnter={() => !isChatMode && isDragging && setIsHoveringPanel(true)}
onMouseLeave={() => setIsHoveringPanel(false)}
onMouseUp={() => {
- if (isDragging && isHoveringPanel) {
+ if (!isChatMode && isDragging && isHoveringPanel) {
onDropTrainingData();
setIsHoveringPanel(false);
}
@@ -594,7 +623,9 @@ export default function SoftwareWindow({
minHeight: isSmallScreen ? 'clamp(150px, 30vh, 320px)' : 'clamp(180px, 40vh, 600px)',
position: "relative",
overflow: "hidden",
- transition: "all 1.2s cubic-bezier(0.2, 0.8, 0.2, 1)"
+ opacity: isChatMode ? 0 : 1,
+ transform: isChatMode ? "translateY(10px)" : "translateY(0)",
+ transition: "opacity 0.6s ease-out 0.3s, transform 0.6s ease-out 0.3s"
}}
>
{shouldRenderCameraStation && (
diff --git a/src/components/HomeHero/index.tsx b/src/components/HomeHero/index.tsx
index b1e72f8e..5bf93434 100644
--- a/src/components/HomeHero/index.tsx
+++ b/src/components/HomeHero/index.tsx
@@ -79,7 +79,11 @@ function useAdaptivePerformance() {
};
}
-export default function HomeHero() {
+interface HomeHeroProps {
+ mode?: 'demo' | 'chat';
+}
+
+export default function HomeHero({ mode = 'demo' }: HomeHeroProps) {
const performanceValue = useAdaptivePerformance();
const [isDragging, setIsDragging] = useState(false);
@@ -95,13 +99,25 @@ export default function HomeHero() {
);
const [showGhost, setShowGhost] = useState(false);
const [isGhostHovering, setIsGhostHovering] = useState(false);
+ const [chatCompleted, setChatCompleted] = useState(false);
+
+ const handleChatComplete = useCallback(() => {
+ setChatCompleted(true);
+ setShowGhost(false);
+ }, []);
+
+ const isChatMode = mode === 'chat' && !chatCompleted;
useEffect(() => {
+ if (isChatMode) {
+ setShowGhost(false);
+ return;
+ }
const timer = setTimeout(() => {
setShowGhost(true);
}, 2000);
return () => clearTimeout(timer);
- }, []);
+ }, [isChatMode]);
const handleDragStart = (e: React.MouseEvent) => {
setIsDragging(true);
@@ -200,18 +216,14 @@ export default function HomeHero() {
- {isDragging && }
+ {isDragging && !isChatMode && }
@@ -221,130 +233,115 @@ export default function HomeHero() {
-
-
-
+
+ How We Automate
+
+
+ AI Development
+
+
+
-
Let ONE AI
-
-
-
- Build Your Custom AI
-
-
-
- No universal AI models.
-
-
- Vision AI built exactly for your application.
-
-
-
-
-
-
- Any Application
-
-
-
-
-
-
-
-
-
-
+
+
+
+ Any Application
+
+
+
+
+
+
+
+
+ Any Requirements
+
+
-
- Any Hardware
-
-
-
-
-
-
- Any Requirements
-
-
-
-
-
-
- Get Started
-
-
-
-
- Learn More
-
-
-
+
+
+
+ Free Download
+
+
+
+
+ Learn More
+
+
+
-
-
-
-
- Get Started
-
-
-
-
- Learn More
-
-
-
+ {!isChatMode && (
+
+
+
+ Free Download
+
+
+
+
+ Learn More
+
+
+
+ )}
diff --git a/src/components/OrbitIndustries/index.tsx b/src/components/OrbitIndustries/index.tsx
index 876cbef3..9a51229a 100644
--- a/src/components/OrbitIndustries/index.tsx
+++ b/src/components/OrbitIndustries/index.tsx
@@ -27,7 +27,7 @@ const industries: IndustryItem[] = [
),
descriptionId: "orbitindustries.anyHardware.description",
- description: "Deploy AI on any hardware. From CPUs to FPGAs, ONE AI optimizes models for memory, FPS and accuracy.",
+ description: "AI for any hardware, no matter how few resources. From microcontrollers to FPGAs - ONE AI optimizes for your exact constraints.",
angle: 335,
},
{
@@ -40,7 +40,7 @@ const industries: IndustryItem[] = [
),
descriptionId: "orbitindustries.anyRequirements.description",
- description: "Built for extreme requirements with ultra-low latency, real-time or maximum throughput.",
+ description: "AI no matter how fast it needs to be. Built for the most demanding real-time applications with guaranteed performance.",
angle: 65,
},
{
@@ -55,7 +55,7 @@ const industries: IndustryItem[] = [
),
descriptionId: "orbitindustries.anyApplication.description",
- description: "From robots with 3D cameras to MRI systems with dozens of images per analysis, ONE AI always builds the best AI for the job.",
+ description: "No matter how complex the application or how unusual the data - ONE AI creates custom neural networks tailored to your specific use case.",
angle: 245,
},
{
@@ -69,7 +69,7 @@ const industries: IndustryItem[] = [
),
descriptionId: "orbitindustries.resultsInMinutes.description",
- description: "From data to deployment in minutes. Build production-ready AI models without ML expertise.",
+ description: "Can be operated by any developer. Get production-ready AI models in minutes, not months - no ML expertise required.",
angle: 155,
},
];
@@ -214,6 +214,11 @@ export default function OrbitIndustries() {
Explore Our Benefits
+
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
+
+
{industry.description}
diff --git a/src/components/VideoShowcase/VideoShowcaseCard.tsx b/src/components/VideoShowcase/VideoShowcaseCard.tsx
index f7463277..eb2ad85d 100644
--- a/src/components/VideoShowcase/VideoShowcaseCard.tsx
+++ b/src/components/VideoShowcase/VideoShowcaseCard.tsx
@@ -25,7 +25,6 @@ interface VideoShowcaseCardProps {
title: string;
metrics: Metrics;
link: string;
- architecture?: string;
isActive: boolean;
onMouseEnter: () => void;
onMouseLeave: () => void;
@@ -37,7 +36,6 @@ export default function VideoShowcaseCard({
title,
metrics,
link,
- architecture,
isActive,
onMouseEnter,
onMouseLeave,
@@ -192,43 +190,6 @@ export default function VideoShowcaseCard({
style={{ zIndex: videoSrc && isActive ? 0 : 10 }}
/>
)}
-
- {architecture && (
-
- {/* Backdrop Blur Gradient */}
-
-
- {/* Architecture Image on the Left */}
-
-
-
-
- )}
-
diff --git a/src/pages/index.tsx b/src/pages/index.tsx
index baabe674..8d66c792 100644
--- a/src/pages/index.tsx
+++ b/src/pages/index.tsx
@@ -14,6 +14,7 @@ import initWebsiteEffects from "../components/startEffects";
import ContactUs from "../components/ContactUs";
import useBaseUrl from "@docusaurus/useBaseUrl";
import Head from "@docusaurus/Head";
+import ChatHero from "@site/src/components/ChatHero";
import HomeHero from "@site/src/components/HomeHero";
import VideoShowcase from "@site/src/components/VideoShowcase";
import OrbitIndustries from "@site/src/components/OrbitIndustries";
@@ -344,13 +345,25 @@ export default function Home() {
/>
-
+
-
+
+
+
+
+
diff --git a/src/pages/one-ai.tsx b/src/pages/one-ai.tsx
index 2e0c58b3..66bd5fa3 100644
--- a/src/pages/one-ai.tsx
+++ b/src/pages/one-ai.tsx
@@ -11,7 +11,7 @@ import Translate, { translate } from "@docusaurus/Translate";
import useBaseUrl from '@docusaurus/useBaseUrl';
import Head from '@docusaurus/Head';
import HeroBackground from "../components/HeroBackground";
-import { useColorMode } from "@docusaurus/theme-common";
+import HomeHero from "../components/HomeHero";
const sliders = [
{
@@ -84,60 +84,7 @@ const sliders = [
},
];
-function HomepageHeader() {
- return (
-
-
-
-
-
-
-
- Let ONE AI Finish Your Vision and Edge AI Projects
-
-
-
-
- See the Power of your dataset with the Right AI.
-
-
-
- Automatically tailored to your needs and exported for any hardware.
-
-
-
-
-
- Example Projects
-
-
-
- Start Now for Free
-
-
-
-
-
-
-
- );
-}
-
function ComparisonSection() {
- const { colorMode } = useColorMode();
- const isDarkMode = colorMode === "dark";
const [activeUseCase, setActiveUseCase] = useState(0);
const useCases = [
@@ -147,7 +94,7 @@ function ComparisonSection() {
subtitle: "ONE AI implements efficient AI on any FPGA with our open source AI to HDL libraries",
subtitleId: "oneai.usecase.hdl.subtitle",
backgroundImage: "/img/ai/one_ai_plugin/use_cases/chip/defect_1.png",
- displayImage: isDarkMode ? "/img/ai/one_ai_plugin/use_cases/chip/integration.svg" : "/img/ai/one_ai_plugin/use_cases/chip/integration-light.svg",
+ displayImage: "/img/ai/one_ai_plugin/use_cases/chip/integration.png",
description: "Next to the vendor tools for AI integration we offer a version for parallel AI integration on FPGAs that allows integration just like parallel image processing that doesn't need an additional processor and adds no overhead to the system. Together with our partner Altera we show how Altera's MAX® 10 with ONE AI and our HDL generator can now outperform Nvidia's Jetson Orin Nano with:",
descriptionId: "oneai.usecase.hdl.description",
metrics: [
@@ -166,7 +113,7 @@ function ComparisonSection() {
subtitle: "Integration on any system with operating system and graphical interface",
subtitleId: "oneai.usecase.ui.subtitle",
backgroundImage: "/img/ai/one_ai_plugin/use_cases/capture/preview.png",
- displayImage: isDarkMode ? "/img/ai/one_ai_plugin/use_cases/capture/integration.svg" : "/img/ai/one_ai_plugin/use_cases/capture/integration-light.svg",
+ displayImage: "/img/ai/one_ai_plugin/use_cases/capture/integration.png",
description: "Eliminate months of development time. Integrate AI with our pre-build UI that supports monitoring, remote control and continuous improvement. Already in production with leading production companies and ready for your quality control or automation task with:",
descriptionId: "oneai.usecase.ui.description",
metrics: [
@@ -183,7 +130,7 @@ function ComparisonSection() {
subtitle: "Deploy AI in Any Application",
subtitleId: "oneai.usecase.sdk.subtitle",
backgroundImage: "/img/ai/one_ai_plugin/demos/overlap-difference/image_000118_test.png",
- displayImage: isDarkMode ? "/img/ai/one_ai_plugin/use_cases/pcb/integration.svg" : "/img/ai/one_ai_plugin/use_cases/pcb/integration-light.svg",
+ displayImage: "/img/ai/one_ai_plugin/use_cases/pcb/integration.png",
description: "ONE AI can create generic ONNX or Tensorflow Lite models that can be integrated directly with your application using our SDK. One example AI model,that you can integrate, detects small objects on complex backgrounds and outperformes YOLOv8 with:",
descriptionId: "oneai.usecase.sdk.description",
metrics: [
@@ -201,7 +148,7 @@ function ComparisonSection() {
subtitle: "Deploy AI with any CPU, TPU, GPU or MCU",
subtitleId: "oneai.usecase.cpp.subtitle",
backgroundImage: "/img/ai/one_ai_plugin/use_cases/pcb/pcb_1.png",
- displayImage: isDarkMode ? "/img/ai/one_ai_plugin/use_cases/pcb/integration.svg" : "/img/ai/one_ai_plugin/use_cases/pcb/integration-light.svg",
+ displayImage: "/img/ai/one_ai_plugin/use_cases/pcb/integration.png",
description: "ONE AI can create Tensorflow Lite based C++ projects or precompiled executables with API that run efficient with any kind of processor or AI accelerator. One example is a PCB quality control where the AI by ONE AI beat not only standard image processing and universal AI models by speed and accuracy, but also the AI model from the scientists with:",
descriptionId: "oneai.usecase.cpp.description",
metrics: [
@@ -234,7 +181,7 @@ function ComparisonSection() {
-
+
-
+
{currentUseCase.title}
-
+
{currentUseCase.subtitle}
-
+
{currentUseCase.description}
@@ -268,7 +215,7 @@ function ComparisonSection() {
{metric.value}
-
+
{metric.label}
@@ -293,7 +240,7 @@ function ComparisonSection() {
-
+
setActiveUseCase(index)}
className={`w-2 h-2 rounded-full cursor-pointer transition-all duration-300 ${
- index === activeUseCase ? "bg-[var(--ifm-color-primary)]" : "bg-gray-400 dark:bg-white/40 hover:bg-gray-500 dark:hover:bg-white/60"
+ index === activeUseCase ? "bg-[var(--ifm-color-primary)]" : "bg-white/40 hover:bg-white/60"
}`}
/>
))}
@@ -672,35 +619,32 @@ function BenefitsSection() {
}
function InventionSection() {
- const { colorMode } = useColorMode();
- const isDarkMode = colorMode === "dark";
-
const inventions = [
{
title: "Automated Analysis",
titleId: "oneai.invention.training.title",
- image: isDarkMode ? "/img/ai/Input.svg" : "/img/ai/Input-light.svg",
+ image: "/img/ai/Input.webp",
description: "ONE AI gets the best results if the dataset focusses on a specific task. First it analyzes the data, labels, hardware constraints, needed performance and application context. For example, it analyzes the object sizes in images.",
descriptionId: "oneai.invention.training.description"
},
{
title: "AI Feature Prediction",
titleId: "oneai.invention.architecture.title",
- image: isDarkMode ? "/img/ai/Prediction.svg" : "/img/ai/Prediction-light.svg",
+ image: "/img/ai/Prediction.webp",
description: "ONE AI then uses its knowledge about existing AI research and previously optimized AI models to predict the needed features for the AI model architecture. For example, bigger objects need larger receptive fields.",
descriptionId: "oneai.invention.architecture.description"
},
{
title: "Build & Train AI Model",
titleId: "oneai.invention.generation.title",
- image: isDarkMode ? "/img/ai/Architecture.svg" : "/img/ai/Architecture-light.svg",
+ image: "/img/ai/Architecture.webp",
description: "ONE AI takes the predictions and then builds a custom neural network architecture that fits all predicted features. Then the AI is trained on the dataset and only learns the relevant information.",
descriptionId: "oneai.invention.generation.description"
},
{
title: "Deploy Anywhere",
titleId: "oneai.invention.deployment.title",
- image: isDarkMode ? "/img/ai/Export.svg" : "/img/ai/Export-light.svg",
+ image: "/img/ai/Export.webp",
description: "Finally the AI can be deployed across FPGAs, microcontrollers, GPUs, and CPUs without modification. ONE AI handles all the complexity of hardware optimization and implementation automatically.",
descriptionId: "oneai.invention.deployment.description"
}
@@ -718,11 +662,11 @@ function InventionSection() {
{inventions.map((invention, index) => (
-
+
Step {index + 1}
-
+
{invention.title}
@@ -744,7 +688,7 @@ function InventionSection() {
/>
-
+
{invention.description}
@@ -755,7 +699,7 @@ function InventionSection() {
-
+
@@ -814,13 +758,12 @@ export default function OneAi() {
-
+
-
diff --git a/src/theme/NavbarItem/DropdownNavbarItem.tsx b/src/theme/NavbarItem/DropdownNavbarItem.tsx
index 1ffb2ded..6ef75709 100644
--- a/src/theme/NavbarItem/DropdownNavbarItem.tsx
+++ b/src/theme/NavbarItem/DropdownNavbarItem.tsx
@@ -6,6 +6,17 @@ import type { WrapperProps } from '@docusaurus/types';
type Props = WrapperProps
;
const navbarIcons: Record = {
+ 'ONE AI Agent': (
+
+
+
+
+ ),
+ 'ONE AI Desktop': (
+
+
+
+ ),
'ONE AI': (