4 models have responded to the "Kandinsky-Style 3D Minecraft" challenge. Compare their approaches side-by-side on RIVAL. This response is part of RIVAL's open dataset of 5,600+ AI model responses.
Glm 4.7's response to the 'Kandinsky-Style 3D Minecraft' challenge.
Write a web version of 3D Minecraft. - Trees - Make the textures clearer, use functions to hand-draw the textures yourself, in the Kandinsky style. Don't just write a link, it won't load. - Make the ground smoother. In a single-page, self-contained HTML.
Couldn't render this response
This model didn't return a displayable web page for this challenge.
Here is a complete, single-page, self-contained 3D Minecraft clone. It features procedurally generated "Kandinsky-style" textures, a smoother rolling terrain, interactive block building/mining, and trees.
### Key Features
1. **Kandinsky Textures:** Instead of loading images, the code uses the HTML5 Canvas API to paint abstract geometric shapes (circles, lines, triangles) directly onto textures in memory.
2. **Smoother Terrain:** Uses sine-wave-based noise generation to create rolling hills rather than jagged random noise.
3. **Performance:** Uses `InstancedMesh` for rendering thousands of blocks efficiently.
4. **Interaction:** First-person controls (WASD + Space), left-click to mine, right-click to place, and number keys (1-4) to select block types.
Save the following code as an `.html` file (e.g., `kandinsky-craft.html`) and open it in any modern browser.
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Kandinsky Craft 3D</title>
<style>
body {
margin: 0;
overflow: hidden;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
background-color: #1a1a1a;
user-select: none;
}
#ui-container {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
display: flex;
flex-direction: column;
justify-content: space-between;
}
#crosshair {
position: absolute;
top: 50%;
left: 50%;
width: 20px;
height: 20px;
transform: translate(-50%, -50%);
pointer-events: none;
}
#crosshair::before, #crosshair::after {
content: '';
position: absolute;
background: rgba(255, 255, 255, 0.8);
}
#crosshair::before {
top: 9px; left: 0; width: 20px; height: 2px;
}
#crosshair::after {
top: 0; left: 9px; width: 2px; height: 20px;
}
#instructions {
padding: 20px;
color: white;
background: rgba(0, 0, 0, 0.5);
text-align: center;
pointer-events: auto;
cursor: pointer;
max-width: 400px;
margin: auto;
border-radius: 8px;
border: 1px solid rgba(255,255,255,0.2);
}
#instructions h1 {
margin-top: 0;
font-size: 24px;
text-transform: uppercase;
letter-spacing: 2px;
color: #ffeb3b;
}
#hotbar {
display: flex;
justify-content: center;
gap: 10px;
padding-bottom: 20px;
pointer-events: auto;
}
.slot {
width: 50px;
height: 50px;
background: rgba(0, 0, 0, 0.6);
border: 2px solid #555;
display: flex;
align-items: center;
justify-content: center;
color: white;
font-weight: bold;
font-size: 14px;
transition: transform 0.1s, border-color 0.1s;
}
.slot.active {
border-color: #fff;
transform: scale(1.1);
background: rgba(255, 255, 255, 0.2);
box-shadow: 0 0 10px rgba(255,255,255,0.5);
}
#loading {
position: absolute;
top: 0; left: 0; width: 100%; height: 100%;
background: #000;
display: flex;
align-items: center;
justify-content: center;
color: white;
z-index: 999;
font-size: 24px;
transition: opacity 0.5s;
}
</style>
</head>
<body>
<div id="loading">Generating Kandinsky Textures...</div>
<div id="ui-container">
<div id="instructions">
<h1>Kandinsky Craft</h1>
<p>Click to Start</p>
<p>WASD to Move | SPACE to Jump</p>
<p>Left Click: Mine | Right Click: Place</p>
<p>1-4: Select Block</p>
</div>
<div id="crosshair"></div>
<div id="hotbar">
<div class="slot active" data-type="1">1</div>
<div class="slot" data-type="2">2</div>
<div class="slot" data-type="3">3</div>
<div class="slot" data-type="4">4</div>
</div>
</div>
<!-- Import Three.js -->
<script type="importmap">
{
"imports": {
"three": "https://unpkg.com/three@0.160.0/build/three.module.js",
"three/addons/": "https://unpkg.com/three@0.160.0/examples/jsm/"
}
}
</script>
<script type="module">
import * as THREE from 'three';
import { PointerLockControls } from 'three/addons/controls/PointerLockControls.js';
// --- Configuration ---
const WORLD_SIZE = 40; // Size of the island
const CHUNK_HEIGHT = 16;
const BLOCK_SIZE = 1;
// Block Types
const BLOCK_GRASS = 1;
const BLOCK_DIRT = 2;
const BLOCK_STONE = 3;
const BLOCK_WOOD = 4;
const BLOCK_LEAVES =