ttc-ai-client
Version:
TypeScript client sdk for TTC AI services with decorators and schema validation.
99 lines • 4.49 kB
JavaScript
"use strict";
/**
* Thinking Bot Animations
* Collection of contemplative and processing animations for the TTC chat bot
* These animations show the bot is actively thinking about the user's message
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.getThinkingAnimation = exports.getRandomThinkingAnimation = exports.thinkingAnimations = exports.slowDeliberation = exports.processingPulse = exports.contemplativeEyes = exports.antennaTwirl = exports.gentleHeadTilt = void 0;
// Thinking Animation 1: Gentle Head Tilt with Eye Movement
exports.gentleHeadTilt = {
name: 'gentle-head-tilt',
loop: true,
speed: 800,
frames: [
{ tilt: 0, eyeX: 0, eyeY: 0, antennaRotation: 0, duration: 800 },
{ tilt: 8, eyeX: 2, eyeY: -1, antennaRotation: 5, duration: 800 },
{ tilt: 0, eyeX: 0, eyeY: 0, antennaRotation: 0, duration: 800 },
{ tilt: -8, eyeX: -2, eyeY: -1, antennaRotation: -5, duration: 800 },
]
};
// Thinking Animation 2: Antenna Twirl with Subtle Movements
exports.antennaTwirl = {
name: 'antenna-twirl',
loop: true,
speed: 600,
frames: [
{ tilt: 0, eyeX: 0, eyeY: 0, antennaRotation: 0, duration: 600 },
{ tilt: 2, eyeX: 1, eyeY: 0, antennaRotation: 45, duration: 600 },
{ tilt: 0, eyeX: 0, eyeY: 0, antennaRotation: 90, duration: 600 },
{ tilt: -2, eyeX: -1, eyeY: 0, antennaRotation: 135, duration: 600 },
{ tilt: 0, eyeX: 0, eyeY: 0, antennaRotation: 180, duration: 600 },
{ tilt: 2, eyeX: 1, eyeY: 0, antennaRotation: 225, duration: 600 },
{ tilt: 0, eyeX: 0, eyeY: 0, antennaRotation: 270, duration: 600 },
{ tilt: -2, eyeX: -1, eyeY: 0, antennaRotation: 315, duration: 600 },
]
};
// Thinking Animation 3: Contemplative Eye Movement
exports.contemplativeEyes = {
name: 'contemplative-eyes',
loop: true,
speed: 1000,
frames: [
{ tilt: 0, eyeX: 0, eyeY: 0, antennaRotation: 0, duration: 1000 },
{ tilt: 0, eyeX: 3, eyeY: -2, antennaRotation: 0, duration: 1000 },
{ tilt: 0, eyeX: 0, eyeY: 0, antennaRotation: 0, duration: 1000 },
{ tilt: 0, eyeX: -3, eyeY: -2, antennaRotation: 0, duration: 1000 },
]
};
// Thinking Animation 4: Processing Pulse
exports.processingPulse = {
name: 'processing-pulse',
loop: true,
speed: 700,
frames: [
{ tilt: 0, eyeX: 0, eyeY: 0, antennaRotation: 0, duration: 700 },
{ tilt: 3, eyeX: 0, eyeY: -1, antennaRotation: 10, duration: 700 },
{ tilt: 6, eyeX: 0, eyeY: -2, antennaRotation: 20, duration: 700 },
{ tilt: 3, eyeX: 0, eyeY: -1, antennaRotation: 10, duration: 700 },
{ tilt: 0, eyeX: 0, eyeY: 0, antennaRotation: 0, duration: 700 },
{ tilt: -3, eyeX: 0, eyeY: 1, antennaRotation: -10, duration: 700 },
{ tilt: -6, eyeX: 0, eyeY: 2, antennaRotation: -20, duration: 700 },
{ tilt: -3, eyeX: 0, eyeY: 1, antennaRotation: -10, duration: 700 },
]
};
// Thinking Animation 5: Slow Deliberation
exports.slowDeliberation = {
name: 'slow-deliberation',
loop: true,
speed: 1200,
frames: [
{ tilt: 0, eyeX: 0, eyeY: 0, antennaRotation: 0, duration: 1200 },
{ tilt: 5, eyeX: 1, eyeY: 1, antennaRotation: 15, duration: 1200 },
{ tilt: 10, eyeX: 2, eyeY: 2, antennaRotation: 30, duration: 1200 },
{ tilt: 5, eyeX: 1, eyeY: 1, antennaRotation: 15, duration: 1200 },
{ tilt: 0, eyeX: 0, eyeY: 0, antennaRotation: 0, duration: 1200 },
{ tilt: -5, eyeX: -1, eyeY: -1, antennaRotation: -15, duration: 1200 },
{ tilt: -10, eyeX: -2, eyeY: -2, antennaRotation: -30, duration: 1200 },
{ tilt: -5, eyeX: -1, eyeY: -1, antennaRotation: -15, duration: 1200 },
]
};
// Collection of all thinking animations
exports.thinkingAnimations = [
exports.gentleHeadTilt,
exports.antennaTwirl,
exports.contemplativeEyes,
exports.processingPulse,
exports.slowDeliberation
];
// Get random thinking animation
function getRandomThinkingAnimation() {
return exports.thinkingAnimations[Math.floor(Math.random() * exports.thinkingAnimations.length)];
}
exports.getRandomThinkingAnimation = getRandomThinkingAnimation;
// Get specific thinking animation by name
function getThinkingAnimation(name) {
return exports.thinkingAnimations.find(animation => animation.name === name);
}
exports.getThinkingAnimation = getThinkingAnimation;
//# sourceMappingURL=thinkingAnimations.js.map