# 3D voxel rendering engine

**URL:** <https://forum.makecode.com/t/3d-voxel-rendering-engine/42425>\
**Category:** Show & Tell\
**Tags:** graphics-and-math, demo, art\
**Created:** [March 1, 2026, 1:55am UTC](https://forum.makecode.com/t/3d-voxel-rendering-engine/42425 "2026-03-01T01:55:02Z")\
**Posts on this page:** 20\
**Page:** 4

<div class="post-metadata">

**Author:** ![coppercode](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/coppercode/32/26022_2.png) [@coppercode](https://forum.makecode.com/u/coppercode)\
**Post date:** [April 22, 2026, 3:09am UTC](https://forum.makecode.com/t/3d-voxel-rendering-engine/42425/62 "2026-04-22T03:09:16Z")

</div>

what is the thing we put in to the extension finder bar to get it and is it work with blocks

---

<div class="post-metadata">

**Author:** ![VoxelMaster64](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/voxelmaster64/32/32075_2.png) [@VoxelMaster64](https://forum.makecode.com/u/VoxelMaster64)\
**Post date:** [April 22, 2026, 7:07pm UTC](https://forum.makecode.com/t/3d-voxel-rendering-engine/42425/63 "2026-04-22T19:07:49Z")

</div>

there’s no blocks support yet, but in the extension in main.ts, there is some code that shows all that it does so far.

---

<div class="post-metadata">

**Author:** ![NeverStopTheCoder](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/neverstopthecoder/32/21194_2.png) [@NeverStopTheCoder](https://forum.makecode.com/u/NeverStopTheCoder)\
**Post date:** [April 22, 2026, 7:10pm UTC](https://forum.makecode.com/t/3d-voxel-rendering-engine/42425/64 "2026-04-22T19:10:20Z")

</div>

thats there because when you make a extension you have to add a file to your project and that’s where you make the blocks and if your project has say the Browser Events Extension added when you post the extension it will be added as well

---

<div class="post-metadata">

**Author:** ![VoxelMaster64](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/voxelmaster64/32/32075_2.png) [@VoxelMaster64](https://forum.makecode.com/u/VoxelMaster64)\
**Post date:** [April 23, 2026, 2:05am UTC](https://forum.makecode.com/t/3d-voxel-rendering-engine/42425/65 "2026-04-23T02:05:57Z")

</div>

yes because it needs it to left/right click, and it has no blocks support. sorry!

---

<div class="post-metadata">

**Author:** ![VoxelMaster64](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/voxelmaster64/32/32075_2.png) [@VoxelMaster64](https://forum.makecode.com/u/VoxelMaster64)\
**Post date:** [April 23, 2026, 2:06am UTC](https://forum.makecode.com/t/3d-voxel-rendering-engine/42425/66 "2026-04-23T02:06:16Z")

</div>

you put the entire github url, or just c-minusminus/arcade-voxel-engine. It had no block support, but I might add some next update

---

<div class="post-metadata">

**Author:** ![CodingGrizzlyBear](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/codinggrizzlybear/32/14838_2.png) [@CodingGrizzlyBear](https://forum.makecode.com/u/CodingGrizzlyBear)\
**Post date:** [April 23, 2026, 4:55pm UTC](https://forum.makecode.com/t/3d-voxel-rendering-engine/42425/67 "2026-04-23T16:55:27Z")

</div>

That would be great!!!

---

<div class="post-metadata">

**Author:** ![VoxelMaster64](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/voxelmaster64/32/32075_2.png) [@VoxelMaster64](https://forum.makecode.com/u/VoxelMaster64)\
**Post date:** [April 24, 2026, 2:09am UTC](https://forum.makecode.com/t/3d-voxel-rendering-engine/42425/68 "2026-04-24T02:09:35Z")

</div>

next update theoretically on Apr 24th! Adds many stuff :󠇪)

---

<div class="post-metadata">

**Author:** ![VoxelMaster64](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/voxelmaster64/32/32075_2.png) [@VoxelMaster64](https://forum.makecode.com/u/VoxelMaster64)\
**Post date:** [April 26, 2026, 1:21am UTC](https://forum.makecode.com/t/3d-voxel-rendering-engine/42425/69 "2026-04-26T01:21:42Z")

</div>

finished the next update, the blocks are a little finicky. Everything else works fine though!

---

<div class="post-metadata">

**Author:** ![YamJamTheGoober](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/yamjamthegoober/32/29681_2.png) [@YamJamTheGoober](https://forum.makecode.com/u/YamJamTheGoober)\
**Post date:** [April 26, 2026, 6:47pm UTC](https://forum.makecode.com/t/3d-voxel-rendering-engine/42425/70 "2026-04-26T18:47:04Z")

</div>

Can’t wait to try it!

---

<div class="post-metadata">

**Author:** ![VoxelMaster64](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/voxelmaster64/32/32075_2.png) [@VoxelMaster64](https://forum.makecode.com/u/VoxelMaster64)\
**Post date:** [April 26, 2026, 6:48pm UTC](https://forum.makecode.com/t/3d-voxel-rendering-engine/42425/71 "2026-04-26T18:48:17Z")

</div>

> [@So What Is Your Favorite Makecode User?](https://forum.makecode.com/t/so-what-is-your-favorite-makecode-user/22108/443):
>
> Thank you! I really love puzzles, and solving peoples’ bugs is always a good puzzle, so it has become most of what I do on the forums! \<3

hmm… could you please help with my voxel engine a bit? The blocks for the player are acting kinda funny, specifically the getters/setters. I think its because there static but I’m not sure. The extension is [https://github.com/c-minusminus/arcade-voxel-engine](https://github.com/c-minusminus/arcade-voxel-engine)

---

<div class="post-metadata">

**Author:** ![VoxelMaster64](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/voxelmaster64/32/32075_2.png) [@VoxelMaster64](https://forum.makecode.com/u/VoxelMaster64)\
**Post date:** [April 27, 2026, 4:37pm UTC](https://forum.makecode.com/t/3d-voxel-rendering-engine/42425/72 "2026-04-27T16:37:37Z")

</div>

@richard, whats the biggest number array length the settings extension can save/load, and are there better ways to save huge number arrays? i tried saving a 200x200x200 (8,000,000 in length) and the game crashed every time i tried. I know 8,000,000 is an unresonable amount, but it would be nice to know.

---

<div class="post-metadata">

**Author:** ![VoxelMaster64](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/voxelmaster64/32/32075_2.png) [@VoxelMaster64](https://forum.makecode.com/u/VoxelMaster64)\
**Post date:** [April 27, 2026, 4:38pm UTC](https://forum.makecode.com/t/3d-voxel-rendering-engine/42425/73 "2026-04-27T16:38:58Z")

</div>

@richard is it possible to have getters/setters in namespaces? im talking about how in the Sprites class it has

```typescript
//% group="Physics" blockSetVariable="mySprite"
//% blockCombine block="x" callInDebugger
//% blockCombineGetHelp=sprites/sprite/x#get
get x(): number {
    return Fx.toFloat(Fx.add(this._x, Fx.div(this._width, Fx.twoFx8)));
}
//% group="Physics" blockSetVariable="mySprite"
//% blockCombine block="x"
//% blockCombineSetHelp=sprites/sprite/x#set
set x(v: number) {
    this.left = v - (this.width / 2)
}

```

And when i tried doing the same in namespaces for my voxel engine, it didnt work. Is there a way to do something like this, without doing it like this:

```typescript
//% group="..."
//% block="..."
export function getX() {
    return x
}

```

It organizes the code so much, and i dont want to not have it. Also, this is for the player which i don’t want to be a class, because there should only be one player. I could make it a class it just doesnt make much sense to me.

---

<div class="post-metadata">

**Author:** ![WoofWoof](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/woofwoof/32/32523_2.png) [@WoofWoof](https://forum.makecode.com/u/WoofWoof)\
**Post date:** [April 27, 2026, 4:41pm UTC](https://forum.makecode.com/t/3d-voxel-rendering-engine/42425/74 "2026-04-27T16:41:00Z")

</div>

Can you expand on “acting kinda funny”?

---

<div class="post-metadata">

**Author:** ![coppercode](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/coppercode/32/26022_2.png) [@coppercode](https://forum.makecode.com/u/coppercode)\
**Post date:** [April 27, 2026, 4:43pm UTC](https://forum.makecode.com/t/3d-voxel-rendering-engine/42425/75 "2026-04-27T16:43:33Z")

</div>

hi I’m using you extension in blocks and I cannot work out how it works can you Maby please make a demo in blocks so I can see how it works

---

<div class="post-metadata">

**Author:** ![richard](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/richard/32/5417_2.png) [@richard](https://forum.makecode.com/u/richard)\
**Post date:** [April 27, 2026, 5:30pm UTC](https://forum.makecode.com/t/3d-voxel-rendering-engine/42425/76 "2026-04-27T17:30:23Z")

</div>

the limit on storage is roughly 16 kilobytes.

no, it’s not possible to do that in TypeScript, though you can have static getters/setters on classes:

```ts
class Whatever {
    static get x(): number {
        return 0;
    }
}

console.log(Whatever.x)

```

---

<div class="post-metadata">

**Author:** ![VoxelMaster64](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/voxelmaster64/32/32075_2.png) [@VoxelMaster64](https://forum.makecode.com/u/VoxelMaster64)\
**Post date:** [April 27, 2026, 10:21pm UTC](https://forum.makecode.com/t/3d-voxel-rendering-engine/42425/77 "2026-04-27T22:21:40Z")

</div>

thanks! I did start to try that, and doing that is the error @WoofWoof . For some reason, the getters/setters want a variable for an input. rather than a Player, it wants the whole Engine! obviously the player has a position and the engine doesn’t, so it’s causing it to cause errors. doing VoxelEngine.Player.x works fine though. it’s that the blocks are doing VoxelEngine.x. Also it shouldn’t even be asking for an input, it’s a static class!

---

<div class="post-metadata">

**Author:** ![coppercode](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/coppercode/32/26022_2.png) [@coppercode](https://forum.makecode.com/u/coppercode)\
**Post date:** [April 28, 2026, 12:47am UTC](https://forum.makecode.com/t/3d-voxel-rendering-engine/42425/78 "2026-04-28T00:47:09Z")

</div>

hi how do you use the engine in block code I can’t get it to work

---

<div class="post-metadata">

**Author:** ![VoxelMaster64](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/voxelmaster64/32/32075_2.png) [@VoxelMaster64](https://forum.makecode.com/u/VoxelMaster64)\
**Post date:** [April 28, 2026, 6:28pm UTC](https://forum.makecode.com/t/3d-voxel-rendering-engine/42425/79 "2026-04-28T18:28:38Z")

</div>

might make a tutorial or spring one I finish making sure it works

---

<div class="post-metadata">

**Author:** ![IAmMyGuy21th](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/iammyguy21th/32/16978_2.png) [@IAmMyGuy21th](https://forum.makecode.com/u/IAmMyGuy21th)\
**Post date:** [April 28, 2026, 6:29pm UTC](https://forum.makecode.com/t/3d-voxel-rendering-engine/42425/80 "2026-04-28T18:29:33Z")

</div>

would this help?  
[MakeCode Blocks Playground](https://makecode.com/playground)

---

<div class="post-metadata">

**Author:** ![IAmMyGuy21th](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/iammyguy21th/32/16978_2.png) [@IAmMyGuy21th](https://forum.makecode.com/u/IAmMyGuy21th)\
**Post date:** [April 28, 2026, 6:54pm UTC](https://forum.makecode.com/t/3d-voxel-rendering-engine/42425/81 "2026-04-28T18:54:27Z")

</div>

omg how is it so _FAST_? this is amazing!

[Previous page](https://forum.makecode.com/t/3d-voxel-rendering-engine/42425.md?page=3)

[Next page](https://forum.makecode.com/t/3d-voxel-rendering-engine/42425.md?page=5)
