Filter
Exclude
Time range
-
Near
I was today years old when I discovered you can, in fact, just type BlockType[n] to get the name of the enum value... #gamedev #indiegame
2
63
Replying to @Sprytixl
@Blizzard_Ent @EpicGames How does this sound as a video game concept? Building on worlds that operate on real physics and theory @grok @elonmusk better than Diablo? { "academy_game_dev_blueprint": { "name": "HFTAS_Code_Implementation_v1.0", "engine": "Unity 2022.3 LTS (Personal edition free) — best for real physics, voxel assets, and rapid prototyping. Alternative: Godot 4.3 (fully open-source) if you want zero licensing.", "tech_stack": { "voxel_terrain": "Unity Voxel Plugin (Asset Store) or custom marching-cubes procedural generation for real physics-compliant blocks", "physics": "Unity Physics custom scripts for electrical theory (circuit simulation via Graph-based node system), structural load-bearing, fluid/atmospheric dynamics", "ai_droids": "Unity ML-Agents or Behavior Designer for Optimus-style modular droids (construction, harvest, repair, defense variants)", "people_redirection": "Custom NPC system with Sims-style needs goal-oriented action planning (GOAP)", "economy": "HybridCurrencyManager.cs — physical seed credits digital footprint tokens with real-time multipliers", "alien_attacks": "Event-driven wave system using Unity Timeline physics-based projectiles/shields (no melee)", "ui_hud": "UI Toolkit 3π² orbital HUD with Yin-Yang balance meter", "backend": "Optional: Photon Fusion 2 for co-op cohort play on-chain footprint ledger (via Web3 Unity SDK for hybrid currency tracking)" }, "project_structure": { "folders": [ "/Scripts/Core/TriCoreIntegrator.cs", "/Scripts/Mechanics/VoxelBuilderWithPhysics.cs", "/Scripts/Mechanics/OptimusDroidController.cs", "/Scripts/Mechanics/HybridCurrencySystem.cs", "/Scripts/Mechanics/AlienAttackManager.cs", "/Scripts/Academy/PeopleRedirectionManager.cs", "/Scripts/Academy/FootprintTracker.cs", "/Prefabs/Droids/ModularOptimusVariants/", "/Scenes/FrontierPrime_Map.unity", "/Data/RealScienceConstants.json (physics tables, building codes, electrical resistivity, etc.)" ] }, "key_starter_code_snippets": { "HybridCurrencySystem.cs": "// Multiplies physical cash with digital footprint tokens\npublic class HybridCurrencySystem : MonoBehaviour {\n public float physicalSeedCredits = 100f;\n public float footprintScore = 0f; // Earned via persistence (academy tasks, droid redirection, terraforming actions)\n public float multiplier = 1f; // Scales 5x–150x like Jobs’ 150 calls\n public void ApplyFootprintMultiplier() {\n multiplier = 1f (footprintScore / 100f);\n float effectiveValue = physicalSeedCredits * multiplier;\n Debug.Log($\"Physical $ {physicalSeedCredits} now worth ${effectiveValue} via footprint tokens\");\n }\n}", "VoxelBuilderWithPhysics.cs": "// Real physics building codes validation\npublic class VoxelBuilderWithPhysics : MonoBehaviour {\n public void PlaceBlock(Vector3 pos, BlockType type) {\n // Validate load-bearing, electrical conductivity, thermal expansion using Unity Physics.Raycast custom RealScienceConstants\n if (PhysicsValidator.PassesBuildingCode(pos, type)) {\n Instantiate(voxelPrefab, pos, Quaternion.identity);\n // Trigger terraforming chemistry reaction (real regolith remediation)\n }\n }\n}", "TriCoreIntegrator.cs": "// In-game version of your JW Architect\npublic class TriCoreIntegrator : MonoBehaviour {\n // 15 agents 126 bots logic runs every frame\n void Update() {\n YinYangRecurringModel.BalanceCycle();\n // Splinter/reform data for balanced gameplay\n }\n}" }, "cohort_build_plan": { "week_1": "Unity setup basic voxel map with real gravity/physics (use provided image as reference)", "week_2": "Optimus droids people redirection system hybrid currency multiplier", "week_3": "Terraforming mechanics (real science tables) mid-flight alien attack waves",
1
4
9,420
There are lots of different ways to measure density. “Dwellings per hectare” is the default shorthand in planning. It’s simple. Comparable. Easy to drop into policy. But it hides as much as it reveals. Two schemes can both be 90 dph and be completely different places. One might have high site coverage and shallow back gardens. Another might be mid-rise perimeter blocks with generous shared courts. Density isn’t one number. It’s a relationship between: – Site coverage – Floor Area Ratio – People per hectare – Habitable rooms per hectare – Typology and block structure If we only look at dph, we’re often blind to what actually shapes places. So we’ve added a new density panel in Blocktype that shows these metrics side by side, updating live as you design. The goal is to understand that density is an outcome, not a tareget. Because better housing decisions don’t come from chasing a target, they come from understanding the design decisions behind the number. #NPPF #planning #housing #density
3
330
⸻ 1) AIに組み込む全体像 TAALFをAIに入れるときの構成は 3つに分けるのが安全で強い。 A. ルール層(非LLM) •HardLimit判定 •RequiredControls(RC)チェック •Decisionテーブル(PASS/HOLD/BLOCK) 👉 ここは「コード/ルール」で固定。LLMに決めさせない。 B. LLM層(言語処理だけ) •ΔSを「事実だけ」に整形 •不足情報の質問文を作る •顧客向け/社内向けの文面を作る •既存情報から“根拠になりうる事実”を要約する 👉 LLMは 判断しない。文章と整理だけ。 C. 記録層(LR) •LR v1.1 を発行・保存(監査ログ) •後から検索できるようにする 👉 「正当化=ログ」をシステムの成果物にする。 ⸻ 2) 実際のフロー(AIがやる順番) Step 0:入力 ユーザーはこれだけ入れる(テンプレのまま) •ΔS / Domain / Scope / Inertia Step 1:PIIチェック(ルール) •個人情報っぽい → HOLD(削除して再提出) Step 2:Gate分岐(ルール) •cross / 金銭 / 契約 / AIデータ → Strict •それ以外 → Fast Step 3:Fast Gate(軽量チェック) •Integrity / Sustainability / Explainability •PASS or HOLD(稀にBLOCK) Step 4:Strict Gate(固定テーブル) 1.HardLimit hit → BLOCK 2.HardLimit not hit & RC fail → HOLD 3.全pass → PASS Step 5:LR v1.1 を発行 •Decision / BlockType / Constraints / NextRoute / Expiry を確定して保存 Step 6:ユーザーへ返答(LLM) •言語で短く •次にやること(NextRoute)を必ず添える ⸻ 3) 「AI組み込み」で一番大事なルール ✅ HardLimitはLLMに任せない LLMは“説得”が得意だから、ここを任せると事故る。 •HardLimit = ルールエンジン •LLM = 要約と文面 この分離がTAALF実装の生命線。 ⸻ 4) 実装で必要な部品(最小セット) (1) TAALF Engine(Python) •さっきの TAALFEngine.run() が中核 (2) ルールの外出し(推奨) 運用で更新したいものは YAML にする •hard_limits.yaml(BLOCK条件) •required_controls.yaml(HOLD条件) •routing.yaml(Fast/Strict分岐) 👉 「コード変更なしで運用アップデート」ができる。 (3) LRストア 最初はCSVでもいいけど、現実はこれが便利 •DB(Postgresなど) •もしくはNotion/Google Sheets(PoC用) ⸻ 5) LLM側に渡す“最小プロンプト”の型 LLMにはこう頼むのが鉄板。 ① ΔS整形(事実のみ) •1文 •目的/感情/期待を削除 ② 不足情報の質問文生成 •RequiredControlsがfailになったキーだけ聞く (例:reason / effective_date / scope_limit / exceptions_policy) ③ PASS時の顧客向け文面 •断定しない •条件と範囲を明示 •余計な約束を増やさない ⸻ 6) 具体例(単価訂正ケースでAIがどう動くか) 1.入力: 「単価訂正したい / sales / cross / high」 2.Strictへ 3.RC-FINが不足 → HOLD AIが返す: •「理由」「適用開始日」「対象範囲」「例外なし」を埋めてください 4.補足入力が揃う 5.PASS → LR発行 6.AIが返す: •“今回限り・対象4本・適用開始日” を短く ⸻ 7) まとめ AIにTAALFを組み込むとは、 •判断はルールで固定し、 •言葉はLLMで整え、 •結果はLRとして記録し、 •次の行動(NextRoute)まで返す という “分業アーキテクチャ” ⸻

7
150
Jan 5
Etheria v1.1 and v1.2: the pivot These versions drop on-chain entropy entirely. Now farmTile takes a user-supplied blocktype and appends 10 blocks of that type.
1
4
166
Jan 5
5/ Etheria (2015) @etheria_feed Etheria is a perfect case study because you can literally watch the seed model evolve across versions (v0.9 to v1.2). It goes from randomness from last block towards explicit user choice. Etheria v0.9 farming v0.9 derives the farm output from the previous block hash: bytes32 last = blockhash(block.number - 1); Then it appends 10 new blocks, each with a type based on one byte of that hash: blocktype = int8(uint8(last[i]) % 32); So the numbers map to block types so that each byte becomes one of 32 possible outcomes. It’s pseudo-random but not unpredictable in an adversarial sense, because the previous block hash is already known when you’re about to send your transaction. Two consequences: (1) Timing You can’t pick a specific result inside the contract, but you can decide when to farm. If the current previous block hash would yield something you don’t like, you wait for another window and try again. (2) Inclusion Even if you compute a favorable next-block outcome, your transaction still has to land where you expect. Builders and proposers control ordering, so slipping one block forward or backward changes the hash and the seed.
1
1
5
395
25 Sep 2025
Blocktype, RCKA & Lewisham working together to identify small sites & use LDOs to have approved typologies. Thank fudge for that! Tis why I lobbied (successfully) for the NPPFs identifying sites chapter to mention them. Well done, @russellcurtis/@euanmills. A great solution!
1
3
121
4 Jul 2025
HELLO 🧶 @lumegallery’s mint is live. And what a journey it’s been to get here and I’m so excited to delivery something I think is cool, and hopefully you do too 🫡 THREADING THE LUME : PSEUDORANDOM PROGRAMMATIC GENERATIVE ART HOW YOUR MINT INFLUENCES THE ART: Every Lume mint is generated from three on-chain inputs: the transaction hash, the gas used, and HyperEVM’s block type (Big vs Small). Those inputs drive our PRNG, density algorithms, and palette selection.l - your actions directly affect the art. Tx Hash → Structure We utilized Artblocks random class to help us create deterministic functions to help draw our art. The full transaction hash is parsed and the functions are used to deterministically set colors, shapes, and design. Each hash is guaranteed unique—no two pieces ever match. 🦄 Gas Used → Density Distribution Gas as art. It affects the layout and noise density the shapes are drawn on. Low‐gas mints yield not as densely packed shapes and patterns; high‐gas mints pack in more shapes, tighter noise, finer detail 🎨 Block Type → Scale HyperEVM has a dual-block architecture. It’s built on small and big blocks. The small blocks run about every second and the big blocks run about every 60 seconds. By changing your block size you change the scale of the art 👀 Onchain → Cloud → Onchain The initial goal was to do everything onchain concurrently as the mint happened. Very quick I realized that this is a huge bottleneck and not the way to deliver a smooth experience to users. This had to be optimized. So taking a cue from Artblocks we split up mint process between token minting and transactional data all onchain but the art generation and trait calculations happening in hybrid environment where the renderer uses onchain data sources for p5js and the art script. Our backend is optimized to split the art generation up across workers if there is demand. Source of Truth → The Blockchain All critical data—txHash, gasUsed, blockType lives onchain. The cloud layer only reconstructs art from those canonical inputs. Every image is verifiably tied to its mint. Lume Genesis → Future Framework I’m excited to build the framework for @lumegallery with a goal of helping other creators deploy their art onchain. Weather its programmatic or trait based. generative art is fun and wayyyy cooler when its onchain. So if you got this far, thanks! 🦾😤🫡 Let’s thread the lume 🧶 mint.lume.gallery/
25
12
77
15,560
14 May 2025
With my moots's blocktype sonas and owners!!
1
11
37
867
8 May 2025
Am I the first person to create a blocktype fan sona??
3
18
66
1,370
A quick look at the Blockwar Museums Blocktype 99. Blocks love the blocky paintjob and optics
5
57
601
8,640
Join the Blocktype team! We're looking for an Experience Designer to own the complete Blocktype experience. Please spread the word, we'd love to reach people of all backgrounds, ethnicities and gender identities. Details here: blocktype.co.uk/jobs-experie... #jobs #hiring #ux

3
2
282
30 Mar 2025
日々勉強179日 「#Unity#ゲーム制作」 ■AIと機能追加 〇足元のブロックの確認 足元のブロックを確認して、画面上部に表示 〇通過可能オブジェクトの実装 目的)水ブロックに潜る これまで、BlockTypeのisSolidで描画の判断 新しくisPassableを追加して、通り抜けの判断追加 #プログラミング
2
19
649
Sweet, set "isLiquid": true in the map.json blockType for the water. Will apply the water shader
8
189
This isn’t a pipe dream, it’s what Blocktype is evolving into. Watch this space and get in touch if you want to get involved.
1
5
267
BlockTypeとItemTypeの相互変換ができるクラスとか、あるアイテムがブロックかどうか確かめたりとかできるの、需要ありますか
2
1
7
638
Found Blocktype
2
3
26
528
IF YOU'RE ACTIVE DO THE FOLLOWINGS: Type $PARAM to become rich⚫️Type $BLOCK to become rich📷Type $PARAM to become rich📷$BLOCK to become rich📷Type to become rich📷Type $BLOCKType $PARAM to become rich📷Type $BLOCK to become rich📷 ⚫️🟪
1
4
10 Nov 2023
OKAY THIS IS PEAK EXCLUSIVE BLOCKTYPE
1
138
どっちでもいいんだけど節約しておこうっと。 -else if (match(15, "}", pc) && curBlock[BlockType] == ForBlock) { else if (match(12, "}", pc) && curBlock[BlockType] == ForBlock) {
1
2
270