Testing LLMs in 3D Scene Generation: Mastering the "First Glance" Engineering
This article evaluates the engineering capabilities of Large Language Models in offline 3D scene generation through a comparative test between two generations of models. By generating a complex tidal water lock scene using a single HTML file, it examines differences in spatial composition, WebGL rendering mechanisms, and multi-system synchronization. The analysis provides a practical evaluation framework for developers to assess LLM-generated 3D code beyond standard benchmark scores.
Testing LLMs in 3D Scene Generation: Mastering the “First Glance” Engineering
1. Background: What Matters Beyond Parameter Scale
Recently, a cloud provider released a flagship large language model featuring three trillion parameters and a maximum context window of one million tokens. According to official announcements, this model has increased post-training investments compared to its predecessor, focusing on enhancing coding, 3D creation, and financial research capabilities. It has been integrated into conversational interfaces, office suites, programming tools, and APIs.
Evaluations show that its strengths lie in long-form coding and tool-assisted tasks, though performance varies significantly across different dimensions. While the industry trend heavily favors lightweight “Flash” models optimized for scale and speed, this model chose to push the boundaries of frontier capabilities instead.
For developers, the most meaningful observation is that the external technical environment has shifted during the training cycle. The marginal gains from distillation are declining, and the path to capability improvement is shifting from “knowledge compression” to “engineering-based reasoning.” By examining the improvements—and local regressions—of this new generation, we can glimpse the future direction of technological evolution.
This article conducts a comparative test between two generations of models using a complete offline 3D scene generation task, deconstructing their real-world differences in long-context coding, graphics rendering, and system integration.
2. Test Design: Evaluating Engineering Capabilities with a “Complete World”
Tests were conducted on the desktop client in “Advanced” mode. Following industry conventions, older models often experience capability degradation once new models are launched, so comparisons must be completed within the same timeframe.
Task Definition: Generate an offline HTML file featuring a giant annular water lock, a terraced coastal city, and a dynamic tidal system. The prompt requirements were:
- Establish a solid composition, architecture, and materials first.
- Tidal fluctuations cannot simply rely on moving a flat blue plane up and down.
- Boats, waterlines, and the flooded state of the plaza must dynamically respond to tide levels.
The core challenge of this task is not a single technical point but multi-system collaboration: geometric construction, material differentiation, water surface rendering, and dynamic linkage must all work seamlessly together.
Both generations of models delivered a native WebGL2 single-file implementation with no external image, model, or third-party library dependencies. This indicates that foundational code generation capabilities are solid. The real gap emerges in the visual organization of the “first glance.”
3. Composition: From “Placing Models” to “Building Worlds”
3.1 Organizing Camera Priorities
The most immediate visual difference lies in how the default camera organizes the scene’s priorities.
The previous generation’s giant ring was indeed massive, but the mountain terrain on both sides occupied more of the frame. The initial viewport was heavily filled with near slopes and distant mountains, pushing the city deep into the bay and weakening the visibility of the buildings and plaza. The ring stood in the center, while the coastal city required effort to identify—a typical rigid feeling of “placing a single circular object on terrain.”
The new generation organizes the giant ring, bridge arches, beacon towers, and stepped residential structures into a cohesive landscape. The buildings spread along the shores, and the central plaza displays clear concentric steps. The warm and cool textures of oxidized copper and stone are easier to distinguish. It feels closer to the “complete world” requested by the prompt rather than an isolated landmark.
3.2 Why Composition Matters
For 3D generation tasks, composition capability is an external manifestation of the model’s spatial semantic understanding. A model that truly understands a scene knows that:
- The giant ring is a visual anchor but should not monopolize the frame.
- The city requires sufficient pixel area to be recognizable.
- The ratio of water surface to sky affects the overall atmosphere.
- Foreground, midground, and background need layered organization.
This requires the model not only to write rendering code but also to possess a “director’s mindset”—knowing where to place the camera, what to include in the frame, and how to guide the viewer’s eye.
4. Rendering Mechanisms: Differences in Water Surface Reflection
There are also substantial differences in water surface rendering mechanisms.
Previous Generation: Primarily used analytical sky, sun highlights, and light streaks to simulate reflections. This is an approximation method with low computational cost, but the reflected content has no true spatial correspondence with the onshore buildings.
New Generation: Additionally introduced a mirror camera, redrawing the city and boats before sampling them onto the water surface. This gives the reflections of onshore buildings a true spatial source, representing an upgrade in the implementation mechanism.
The difference can be roughly represented with pseudocode:
// Previous generation: Analytical reflectionvec3 reflection = skyColor + sunGlint + lightStreak;// New generation: Mirror camera samplingmat4 mirrorView = reflectViewMatrix(cameraView, waterPlane);vec3 reflection = texture(renderTarget, projectUV(mirrorView, worldPos)).rgb;
From an engineering perspective, the mirror camera approach requires an extra scene rendering pass, demanding higher performance, but achieves more realistic reflection effects. This is a classic quality vs. cost trade-off decision. Whether the model can make the right choice depends on its depth of understanding of the task’s objectives.
5. System Integration: Tides Are More Than “Water Plane Movement”
The prompt explicitly required that tidal fluctuations involve more than just moving a blue plane. Boats, waterlines, and the plaza’s flooded state must all change accordingly.
This means the model needs to construct a tidal state machine and have multiple subsystems subscribe to this state:
- Water surface height: Drives the Y-axis displacement of the water mesh.
- Boat position: Floats up as the water level rises and runs aground as it falls.
- Waterline material: Dynamically displays the water level mark on building surfaces.
- Plaza flooding: Switches materials or adds water coverage when the level exceeds step heights.
A reasonable implementation approach is to maintain a global tide level variable, updated uniformly in the render loop:
const tideLevel = computeTide(time); // 0.0 ~ 1.0updateWaterPlane(tideLevel);updateBoats(tideLevel);updateWaterline(tideLevel);updatePlazaFlooding(tideLevel);
From the test results, the new generation model was not entirely thorough in setting the parameters for the highest tide level—indicating that system integration consistency remains a weak point for current models. While the model can write the update logic for each subsystem, it is prone to state desynchronization issues under boundary conditions and extreme parameters.
6. Evaluation Methodology: Assessing Engineering Capabilities
Based on this hands-on test, we can extract a general framework for evaluating a large model’s 3D generation capabilities:
| Dimension | Observation Point | Suggested Weight |
|---|---|---|
| Composition | Does the default camera highlight the main subject and are layers clear? | High |
| Material Differentiation | Are there recognizable visual differences between materials? | Medium |
| Rendering Mechanism | Are more realistic physical simulation approaches adopted? | High |
| System Integration | Are multiple subsystems consistent under boundary conditions? | High |
| Code Quality | Is it single-file, dependency-free, and runnable offline? | Medium |
| Performance | Is the frame rate stable without noticeable stuttering? | Medium |
The value of this framework lies in its independence from specific benchmark scores, evaluating model output from an engineering delivery perspective. For enterprise users, a complete, directly runnable solution is more meaningful than impressive benchmark numbers.
7. Insights: From “First Impression” to “Backend Tests”
This test reveals a significant trend: large models have become quite mature at the “first impression” level—composition, materials, and lighting. The new generation can quickly organize cohesive landscapes, making the scene visually convincing at first glance.
However, the real test lies in the backend:
- Boundary Conditions: Does the system remain consistent under extreme parameters?
- State Synchronization: Is the linkage between multiple subsystems reliable?
- Performance Optimization: Do more realistic rendering approaches bring unacceptable performance overhead?
- Maintainability: Is the generated code readable and extensible?
For developers, this means that when selecting a model, one cannot solely rely on demo effects but must focus on performance within a complete task loop. For model providers, the next phase of competition will shift from “can it generate” to “is the generation reliable.”
From the perspective of technological evolution, the gains from distillation are diminishing. Model capability improvements increasingly rely on engineering-based reasoning and systematic training. Whoever better solves these “backend” issues will hold the advantage in the next round of competition.
