Creality Ender-3 Neo Interactive 3D Simulator Benchmark
A technical benchmark in which multiple AI models develop an interactive, realistically scaled 3D simulation of the Creality Ender-3 Neo. The benchmark evaluates accurate bed dimensions, mechanically correct axis movement, manual controls, G-code uploading and playback, toolpath visualization, homing, movement constraints, performance, and progressive filament deposition. Every model receives the exact same prompt and is evaluated using the same criteria.
Prompt
Create a complete, functional, interactive 3D simulation of a Creality Ender-3 Neo FDM printer. This prompt is an AI comparison benchmark, so implement as many requirements as possible and clearly disclose limitations. Do not only provide a plan, mock-up, static render, prerecorded animation, or pseudocode. Deliver a working project with complete source code and run instructions. OBJECTIVE Build one integrated application in which the user can: - Inspect the printer using orbit, pan, zoom, and camera presets. - Manually move and home the X, Y, and Z axes. - Drag movable components along their mechanically permitted axes. - Upload, parse, preview, and simulate G-code. - Watch filament being deposited progressively, layer by layer. - Pause, resume, stop, restart, reset, and change simulation speed. - Inspect coordinates, layers, temperatures, fan speed, warnings, and toolpath data. SCALE AND DIMENSIONS Use a consistent real-world scale based on millimetres and document any engine-unit conversion. - Printable volume: 220 x 220 x 250 mm. - Physical bed: approximately 235 x 235 mm. - Clearly distinguish the 220 x 220 mm printable area from the larger physical bed. - Do not silently scale, centre, rotate, or reposition uploaded G-code. - Keep all other printer parts proportionally believable. 3D MODEL Create a recognizable Ender-3 Neo, not a generic printer or collection of placeholder cubes. Include: - Black aluminium-extrusion base, two Z columns, top beam, and X gantry. - Moving bed, build surface, Y carriage, four levelling wheels, and supports. - X carriage, hotend, brass nozzle, fan shroud, fans, and CR Touch sensor. - Bowden tube, extruder, filament path, spool holder, and spool. - X/Y belts and tensioners, rollers, Z lead screw and coupler. - X, Y, Z, and extruder stepper motors. - Power supply, electronics enclosure, display, knob, feet, wiring, brackets, and fasteners. Use separate, clearly named objects and a logical hierarchy, for example PrinterRoot, StaticFrame, XGantry, XCarriage, PrintHead, Nozzle, PrintBed, BedCarriage, PrintableArea, BuildVolume, Toolpath, and PrintedFilament. Configure correct origins, pivots, parenting, and constraints. Reuse meshes or instances for repeated details. VISUAL QUALITY Use realistic PBR-style materials where supported: anodized aluminium, plastic, coated/glass-like build surface, steel, brass, rubber, wiring, translucent Bowden tube, and printed filament. Add small bevels and correct shading. Avoid broken normals, floating parts, severe intersections, z-fighting, excessive gloss, invented text, and a toy-like appearance. If accurate branding cannot be reproduced, leave it blank. MECHANICAL MOVEMENT Movement must match the printer: - X: the printhead carriage moves left/right along the X gantry. - Y: the complete bed and its carriage move forward/backward. - Z: the complete X gantry, including the printhead, moves vertically. - Never move only the nozzle vertically for Z. - Printed filament and the printed object remain attached to the moving bed. - Where practical, animate belts, rollers, lead screw, fans, spool, and filament consistently. - Constrain movement to modeled rails and safe limits; components must not pass through the frame. MANUAL CONTROL Provide Manual Mode with: - X-/X+, Y-/Y+, Z-/Z+. - Home X, Home Y, Home Z, and Home All. - Movement increments of 0.1, 1, 10, and 50 mm where safe. - Current XYZ coordinates, selected increment, limit warnings, and reset. If supported, allow direct 3D selection and dragging: - Printhead only along X. - Bed only along Y. - Complete X gantry only along Z. Show selection highlighting and live millimetre coordinates. Prevent free rotation, off-axis movement, and movement through the frame. If dragging is unavailable, provide equivalent sliders. OPERATING MODES Provide separate Manual Mode and G-code Simulation Mode. During active G-code playback, lock manual controls and dragging so systems cannot fight for control. If manual movement is permitted while paused, warn that the simulated position may no longer match the G-code state and provide a restore option. G-CODE UPLOAD AND SECURITY Provide a visible upload control accepting .gcode, .gco, and .gc. Parse files locally where possible. Display filename, parsing state, errors, command count, and progress for large files. Allow a second file to be loaded without reloading the app; stop playback, clear old geometry/state, and avoid leaked resources or duplicated handlers. Treat files as untrusted data: - Never execute uploaded content as JavaScript, Python, shell, HTML, or other code. - Never use eval or equivalent execution. - Parse only G-code structures; safely ignore or report malformed/unsupported lines. - Escape filenames/comments shown in the UI and reject unreasonable numeric values. - Do not access unrelated files or send G-code externally without explicit disclosure. G-CODE SUPPORT Support at minimum: - G0/G1: linear travel and extrusion moves. - G28: home all or specified axes. - G90/G91: absolute/relative positioning. - G92: set logical position. - M82/M83: absolute/relative extrusion. - M104/M109: set nozzle temperature, optionally wait. - M140/M190: set bed temperature, optionally wait. - M106/M107: fan speed/on/off. - Parameters X, Y, Z, E, F, S, and command-specific P where relevant. Correctly handle comments, blank lines, parameters in varying order, omitted axes, feed-rate changes, extrusion-only moves, retractions, travel moves, coordinate resets, and positioning/extrusion-mode changes. Unsupported commands must not crash the application; list them in diagnostics where practical. COORDINATE MAPPING Map G-code coordinates to the real mechanism: - X changes the printhead position. - Y changes the bed position beneath the nozzle. - Z raises/lowers the complete X gantry. - E controls extrusion/deposition. - F affects playback movement speed. The internal visual Y direction may be inverted to represent bed motion, but displayed G-code coordinates, nozzle-to-bed position, toolpath, and deposited filament must remain correct. Document the mapping. TOOLPATH After parsing, create an efficient preview that visually distinguishes: - Extrusion moves. - Travel moves. - Retractions where practical. - Out-of-bounds segments. - The active segment. Provide toggles for the complete path, extrusion moves, travel moves, out-of-bounds sections, printable volume, current layer, completed layers, and all layers. Include layer selection or a layer slider where possible. Do not deposit filament during travel moves. Determine extrusion using the active E mode and prior E state, not merely the presence of an E value. PRINT SIMULATION Execute commands in sequence while updating the mechanical printer and UI. Respect absolute/relative XYZ and E modes, G92 resets, feed rates, homing, travel, extrusion, and retraction. The object must grow progressively instead of appearing at once. Deposit filament only during valid positive extrusion, aligned with the nozzle and toolpath. Keep it parented or transformed with the moving bed. End safely with the completed print visible. Represent deposited filament with plausible width and layer height. For performance, batch segments using buffered/merged geometry, procedural lines/tubes, instancing, or another efficient method. Do not make one heavy scene object for every G-code line or rebuild the complete print every frame. Document visual approximations. LIMITS AND VALIDATION Printable limits are X 0-220, Y 0-220, and Z 0-250 mm. Also account for the approximately 235 x 235 mm physical bed and modeled mechanical travel. - Clamp manual movement to safe mechanical limits. - Warn when a limit is reached. - Detect and highlight G-code outside the printable volume. - Distinguish, where possible, between outside printable area, outside physical bed, and outside mechanical travel. - Show affected line/command where practical. - Never silently repair, delete, resize, or reposition invalid paths. - Keep the virtual mechanism within safe modeled limits even when G-code is invalid. - Prevent obvious manual collisions, especially negative Z, nozzle/bed, carriage/frame, gantry/frame, and bed/frame intersections. HOMING, TEMPERATURE, AND FAN Implement functional visible homing for individual axes and all axes. Update coordinates at completion. Track and display nozzle target temperature, bed target temperature, fan value, and wait-state commands. A fast mode may skip heating delays but must preserve values and command order. Animate visible fans where practical. USER INTERFACE Create a clear desktop interface containing: 1. File: upload, replace, clear, filename, parsing status/progress/errors. 2. Playback: start, pause, resume, stop, restart, reset, progress control, speed, current command/line. 3. Manual: axis buttons, homing, increment selection, XYZ coordinates. 4. View: path/extrusion/travel/build-volume/layer toggles, inspection options, camera reset/presets. 5. Status: mode, XYZ/E, feed rate, layer/total layers, progress, temperatures, fan, warnings. 6. Diagnostics: malformed lines, unsupported commands, mode changes, and out-of-bounds commands. Provide simulation speeds such as 0.5x, 1x, 2x, 5x, 10x, and maximum preview. Speed changes must preserve command order, path, and final geometry. CAMERA, SCENE, AND LIGHTING Provide orbit, pan, zoom, camera reset, and useful front, side, top, build-plate, and three-quarter presets. Camera input must not accidentally move printer parts. Use a neutral studio/workshop scene, ground plane, balanced lighting, soft contact shadows, and strong readability for the black printer, colored toolpath, and deposited filament. PERFORMANCE Large G-code files may contain many commands. Use efficient data structures, batched path/deposition geometry, reused materials/meshes, optional chunked parsing or worker/background processing where supported, and proper disposal. Avoid blocking the interface, rebuilding all geometry each frame, or leaking memory after resets and file replacements. If a file exceeds a reasonable configurable limit, show a warning and offer an optimized preview instead of crashing. DEFAULT DEMO When no file is loaded, include a clearly labelled synthetic G-code demo that prints a small calibration cube or test pattern. It must exercise homing, X/Y/Z movement, travel, extrusion, multiple layers, and optionally temperature/fan commands. DELIVERABLES Provide: - The complete runnable project and all source files, not fragments or pseudocode. - The interactive Ender-3 Neo scene and working controls. - G-code upload, parser, preview, playback, deposition, warnings, and diagnostics. - The synthetic demo G-code. - Exact installation and run instructions. - Project/file structure and object hierarchy. - Supported, partial, and unsupported G-code command lists. - Coordinate mapping and unit conversion. - External libraries/assets and licensing notes where relevant. - Security and performance explanations. - Known limitations and approximations. - Polygon/triangle count where available. - Confirmation that files are parsed only as data. - Confirmation that the physical bed and printable area use different dimensions. ACCEPTANCE CRITERIA The result is complete only if it is recognizably an Ender-3 Neo; uses a roughly 235 x 235 mm physical bed, 220 x 220 mm printable area, and 250 mm build height; moves the head on X, bed on Y, and full gantry on Z; supports manual movement and homing; actually parses uploaded G-code; distinguishes travel and extrusion; moves the printer during playback; deposits filament layer by layer; keeps the print attached to the bed; reports invalid paths; safely handles unsupported commands; can reset and load another file; and includes complete run instructions. A beautiful static model without real G-code functionality is incomplete. A working G-code viewer with a generic or mechanically incorrect printer is also incomplete. PRIORITY ORDER 1. Correct G-code interpretation. 2. Correct coordinate mapping. 3. Correct bed/build dimensions. 4. Mechanically correct XYZ movement. 5. Reliable manual controls and homing. 6. Progressive filament deposition. 7. Stability and performance. 8. Recognizable Ender-3 Neo geometry. 9. Realistic materials and lighting. FINAL RESPONSE Organize the response as: Implementation Summary, Run Instructions, Project Structure, Controls, G-code Support, Coordinate System, Dimensions, Security, Performance, Limitations, and Deliverables. Produce the most complete working implementation possible; do not respond only with a plan or tutorial.
Response not available
Response not available
Response not available