Mistral: Mistral Nemo 在「SVG 交互式动态齿轮组」的评测结果
这是该 AI 模型在此测试用例上的详细评测结果。
基本信息
- 模型名称:Mistral: Mistral Nemo
- 用例名称:SVG 交互式动态齿轮组
- 测试类型:网页生成
- 评测维度:SVG 矢量动画
系统提示词(System Prompt)
这是给 AI 模型的背景设定和角色指令:
你是一名前端开发工程师,擅长 SVG 绘图与 CSS 动画。 代码要求: 1. 生成完整的单页 HTML 应用 2. CSS 和 JavaScript 内联在 HTML 文件中 3. 代码结构清晰,有适当注释
用户提示词(User Prompt)
这是用户给 AI 模型的具体任务要求:
使用 SVG 创建一个简单的双齿轮联动动画。 功能要求: - 在页面中绘制两个相互啮合的 SVG 齿轮(大齿轮和小齿轮) - 齿轮需有明显的齿形轮廓,视觉上像真实齿轮 - 两个齿轮持续自动旋转,旋转方向相反(模拟啮合效果) - 旋转速度根据齿轮大小成比例(大齿轮慢、小齿轮快) - 页面背景简洁,齿轮居中显示
任务要求
AI 模型需要满足以下要求:
- 页面中存在两个可见的 SVG 齿轮,具有明显齿形轮廓
- 两个齿轮持续自动旋转,方向相反
- 旋转速度与齿轮大小成比例
- 齿轮视觉上处于啮合位置
- 代码在单个 HTML 文件中
评测结果
综合得分
该模型在此用例的得分为:25.8 分(满分 100 分),未通过
基础难度评测结果
- 得分:25.8 分
- 通过状态:未通过
模型生成产物
以下是该模型针对此任务的实际生成内容:
Sure, here's a simple HTML page that meets your requirements. I've used inline CSS and JavaScript for simplicity, but in a real-world scenario, it's better to separate them into their own files. ```html Gear Animation body { display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background-color: #f0f0f0; font-family: Arial, sans-serif; } #gears { position: relative; width: 400px; height: 400px; } #gear1 { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 200px; height: 200px; animation: rotate 10s linear infinite; } #gear2 { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%) rotate(180deg); width: 100px; height: 100px; animation: rotate 5s linear infinite; } @keyframes rotate { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } ``` This code creates a simple page with two SVG gears that rotate in opposite directions. The larger gear rotates once every 10 seconds, and the smaller gear rotates once every 5 seconds, creating the illusion of them being connected and rotating at different speeds.
AI 评审点评
以下是 AI 评审对该模型输出的点评:
【CLAUDE】该回答整体质量较差,未能满足基本功能要求。最核心的问题是:齿轮没有真实的齿形轮廓(仅使用了圆形图标路径),两个齿轮位置完全重叠(未处于啮合位置),且旋转方向相同而非相反。代码输出格式也存在问题(HTML实体编码导致无法直接运行)。仅速度比例设置(2:1对应尺寸2:1)有一定合理性,但由于其他核心功能均未实现,整体评分极低。 【GEMINI】模型未能理解「齿轮」的视觉特征,直接使用了现成的圆形图标代替,导致核心功能要求(齿形轮廓、啮合联动)完全失败。虽然基础的动画逻辑和代码结构尚可,但作为 SVG 绘图任务,完成度极低。 【KIMI】该实现严重偏离功能要求。齿轮没有真实齿形,只是简单图标的缩放;两个齿轮重叠放置而非啮合;旋转方向相同而非相反;完全没有实现齿轮联动的视觉效果。虽然代码结构基本规范,但核心功能实现失败,建议重新设计 SVG 齿轮路径,正确计算齿轮位置使其相切啮合,并修正旋转方向为相反方向。
进阶难度评测结果
- 得分:18.2 分
- 通过状态:未通过
模型生成产物
以下是该模型针对此任务的实际生成内容:
Here's a simple implementation of the described system using HTML, CSS, and JavaScript. I've used SVG to create the gears and applied CSS animations and JavaScript interactions to make them work as described. ```html body { background-color: #222; color: #fff; font-family: Arial, sans-serif; display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100vh; margin: 0; } .gears { position: relative; width: 500px; height: 500px; } .gear { position: absolute; transform-origin: 50% 50%; } .gear1 { width: 100%; height: 100%; animation: rotate 10s linear infinite; } .gear2 { width: 60%; height: 60%; top: 20%; left: 20%; animation: rotate 20s linear infinite reverse; } .gear3 { width: 40%; height: 40%; top: 40%; left: 40%; animation: rotate 30s linear infinite; } @keyframes rotate { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } #status { margin-top: 50px; } Normal speed const gears = document.querySelectorAll('.gear'); const status = document.getElementById('status'); let isSpeedUp = false; gears.forEach(gear => { gear.addEventListener('click', () => { if (isSpeedUp) { gear.style.animationDuration = `calc(${gear.style.animationDuration} * 0.5)`; status.textContent = 'Normal speed'; } else { gear.style.animationDuration = `calc(${gear.style.animationDuration} * 2)`; status.textContent = 'Speeding up'; } isSpeedUp = !isSpeedUp; }); }); ``` This code creates a simple three-gear system with the described functionality. The gears are created using SVG and have a metallic appearance thanks to the linear gradients. The gears rotate at different speeds based on their size, and clicking on any gear toggles the rotation speed between normal and double speed. The current rotation status is displayed at the bottom of the page.
AI 评审点评
以下是 AI 评审对该模型输出的点评:
【CLAUDE】该实现存在根本性缺陷:SVG齿轮路径完全为空,页面上不会渲染出任何齿轮图形;渐变定义位置错误导致无法引用;联动比例和方向逻辑不正确;交互功能实现方式无效且逻辑混乱;状态文字使用英文而非要求的中文。整体来看,这是一个框架性的占位代码,几乎没有实现任何实质性功能,与任务要求差距极大。 【GEMINI】该模型未能完成核心任务。虽然搭建了 HTML 框架,但在 SVG 绘图部分完全失败,没有生成任何齿轮路径数据,导致后续的联动动画和交互功能均无法实现。代码中存在明显的语法错误(如 defs 标签位置错误),属于未完成的半成品。 【KIMI】该实现存在根本性缺陷:最核心的 SVG 齿轮路径完全缺失,导致三个维度(齿轮绘制、联动动画、视觉效果)均严重不达标。代码结构存在 HTML 语法错误(<defs> 位置错误),交互逻辑实现错误无法正常工作。虽然理解了任务的基本框架(三齿轮、联动、点击加速、状态显示),但关键实现全部失败,无法运行出符合要求的视觉效果。建议重新生成完整的齿轮路径数据,修正 HTML 结构,使用正确的传动比计算,并实现可靠的速度切换逻辑。
困难难度评测结果
- 得分:20.2 分
- 通过状态:未通过
模型生成产物
以下是该模型针对此任务的实际生成内容:
Here's a simplified version of the HTML, CSS, and JavaScript code to create an interactive gear system as described. Due to the complexity of the task, I've made some assumptions and simplifications, but the core functionality is present. ```html body { font-family: Arial, sans-serif; } #dashboard { position: relative; width: 800px; height: 600px; margin: auto; } .gear { position: absolute; transform-origin: 50% 50%; } #speed-slider { width: 100px; } #speed-value { display: inline-block; width: 30px; text-align: center; } .grid, .scale { position: absolute; } .grid { top: 0; left: 0; width: 100%; height: 100%; } .scale { top: 0; left: 0; width: 100%; height: 100%; transform: rotate(30deg); } 50 Pause const gears = []; const gearData = [ { teeth: 12, posX: 200, posY: 200 }, { teeth: 18, posX: 400, posY: 200 }, { teeth: 24, posX: 600, posY: 200 }, { teeth: 9, posX: 400, posY: 400 }, ]; function createGear(teeth, posX, posY) { const gear = document.createElementNS("http://www.w3.org/2000/svg", "svg"); gear.setAttribute("class", "gear"); gear.setAttribute("width", "100"); gear.setAttribute("height", "100"); gear.setAttribute("x", posX); gear.setAttribute("y", posY); // Generate gear teeth using a simplified algorithm for (let i = 0; i { const gear = createGear(teeth, posX, posY); gear.setAttribute("data-teeth", teeth); gear.addEventListener("mousedown", (e) => { e.preventDefault(); document.addEventListener("mousemove", rotateGear); document.addEventListener("mouseup", stopRotating); }); gearsContainer.appendChild(gear); gears.push(gear); }); const speedSlider = document.getElementById("speed-slider"); const speedValue = document.getElementById("speed-value"); const toggleBtn = document.getElementById("toggle-btn"); let isPaused = false; let rotationSpeed = 50; function updateSpeed() { rotationSpeed = speedSlider.value; speedValue.textContent = rotationSpeed; } function rotateGear(e) { if (!isPaused) { const gear = document.elementFromPoint(e.clientX, e.clientY); if...
AI 评审点评
以下是 AI 评审对该模型输出的点评:
【CLAUDE】该输出是一个极度简化且存在大量功能缺失和实现错误的版本。候选者自己也承认做了大量简化假设。核心功能如渐开线齿形算法、自动旋转动画、正确的传动链联动、RPM显示、运动模糊、平滑加减速、工业仪表盘界面等均未实现或实现严重不足。代码中存在多处技术错误(SVG属性使用错误、旋转逻辑错误等),整体质量远低于任务要求,属于不及格水平。 【GEMINI】该模型未能完成任务要求。生成的代码仅是一个极简的演示原型,缺失了绝大部分核心功能(如精确的渐开线算法、物理传动联动、数据实时显示、平滑动画过渡等)。代码实现过于简化,未能体现资深前端开发工程师的专业水平,且未满足任务描述中对精密机械系统模拟的严苛要求。 【KIMI】该候选输出为典型的「伪实现」代码,表面上包含HTML/CSS/JS结构,但核心功能均未正确实现。齿轮生成算法极度简化,传动链布局物理上不可行,交互功能大量缺失或逻辑错误,视觉效果简陋且不符合工业仪表盘风格。代码中多处注释明确承认简化和不完整,整体质量远未达到hard难度任务的要求。建议评分:不合格。
相关链接
您可以通过以下链接查看更多相关内容: