2025年6月25日 星期三

意外事件預測與模擬:校園意外的 Three.js 模擬與提示方法

這篇整理 2025 年 6 月用 Claude 做的一組校園意外模擬。起點是兩張照片:Claude 依照片用 Three.js 寫出可以在瀏覽器裡操作的 3D 場景,先是水景廣場,再是校園。校園裡有路人走動,按下按鈕就會上演樓梯跌落、腳踏車衝撞、高處墜物等意外。對話中一共產生 36 個版本,其中兩個公開在網路上。下面先介紹這兩個版本,再整理對話經過、把兩個版本實際執行一遍的結果,以及從中歸納的提示方法。

  • 兩個版本。兩版共用同一個校園場景與三個情境(樓梯跌落、腳踏車、墜落物)。A 版另有一列像骨牌一樣倒下的護欄,B 版另有 8 人圍圈跳舞、氣球破掉後人群受驚的快閃情境。
  • 製作過程。對話共 13 則訊息,集中在 2025 年 6 月 22 日到 25 日,10 月 13 日再補一則。多數訊息只有一句話、只改一件事。
  • 腳踏車與墜落物從來不會撞到人。兩版的腳踏車都從行人身旁 4.16 單位處經過,墜落物落在行人 3.0 單位外,而程式判定撞到的距離只有 2.0 和 1.5。
  • 快閃情境很少失控。B 版跑 500 次,15 顆氣球每次都會破,但有 223 次沒有路人受驚,486 次沒有人跌倒,其餘 14 次也都只有兩人相撞。
  • 描述和程式有落差。Claude 的回覆常寫 realistic physics、chain reaction,實際上樓梯跌落和護欄連鎖都是照固定公式播放的動畫。用「check::」要求確認之後,Claude 調大了參數,但沒有實際驗證效果。

兩個版本 · 製作過程 · 實際執行 · 其他觀察 · 提示方法 · 模擬預防措施 · 限制 · 連結

2026 年 11 月 3 日更新:重新整理架構,並把兩個版本實際執行一遍。2025 年 6 月 25 日的原始版本保留在另一個網址。

1. 兩個公開版本

兩個版本的標題都是 Modern Campus Accident Simulation,各是一個 HTML 檔,用 Three.js r128 繪圖。場景相同:三棟灰色建築、三座加了金色邊條的樓梯、15 個隨機走動的路人。人物身高約 3.5 個場景單位,本文的距離都用這個單位。

表 1 兩個版本的內容
A 版:骨牌效應護欄倒成一片B 版:快閃群眾失控
共同情境Stair Fall Accident:一名路人從主樓梯上段翻滾而下。Bike Collision:腳踏車衝向一名行人。Falling Object:一塊建材從 35 單位高處落下。同左
第四個情境Domino Chain Reaction:12 片橘色護欄排成一列,第一片倒下後依序帶倒下一片,最後一片打到站在列尾的人。🎭 Flash Mob Gone Wrong:8 名路人圍成一圈跳舞,2 秒後放出 15 顆氣球;氣球破掉時,附近的路人受驚奔逃、互相碰撞。
操作滾輪縮放,WASD 移動鏡頭焦點,Q/E 調整高度;Reset Scene 讓路人回到隨機位置。同左。畫面上的說明寫著 Mouse: Orbit camera,但程式裡沒有滑鼠旋轉的功能。
和對話的關係骨牌情境不在分享的對話裡。含第 12 則訊息(check::)之後的參數,還沒有第 13 則加入的方向鍵。
A 版場景全景
圖 1 A 版場景,從西南方高處俯瞰(固定鏡頭)。左邊是主樓,中間是第二棟高樓,右邊是矮樓;矮樓前那一列橘黃色護欄是骨牌情境的道具,護欄後方的淺色斜面是側樓梯,主樓梯在矮樓的陰影裡。半空中的褐色小方塊是墜落物情境要丟下的建材,平時就懸在 25 單位高的地方。

2. 製作過程

分享的對話從 2025 年 6 月 22 日開始。前兩則訊息做的是第一張照片裡的水景廣場(Urban Water Feature Accident Simulation,7 個版本);第三則訊息起改用第二張照片的校園(Modern Campus Accident Simulation,29 個版本)。兩張照片在分享頁中是隱藏的。

表 2 對話中的 13 則訊息(版本編號照分享頁)
#日期訊息(原文)版本結果
16/22Animate an accident under the conditions of the picture in three.js(附照片)水景 v1滑倒落水、球擊落水兩個情境
26/23Third person perspective水景 v2–v7鏡頭改成繞著事故轉的第三人稱視角
36/23Analyze it in the same style(附第二張照片)校園 v1多層建築與樓梯;樓梯跌落、腳踏車、墜落物三個情境
46/23Make stair easy to seev2–v6台階改淺灰,加金色邊條與踢面,扶手加粗,主樓梯增為 15 階
56/23Npc walks narurallyv7–v10路人擺手走路、隨機停步轉向,增為 15 人
66/25add this scenario: 🎭 Flash Mob Gone Wrong(附 5 點規格)v11–v17回覆中途停下
76/25Continuev18–v19快閃情境完成
86/25fix ::(貼上墜落物與氣球那段程式)v20整理該段程式
96/25but no workingv21–v22Claude 判斷 createBalloon 在定義前就被呼叫,調整順序
106/25still notv23整份重寫,回覆中途停下
116/25Continuev24重寫完成
126/25check:: Balloons pop randomly, scaring nearby people(另列兩點)v25–v26驚嚇半徑 5→8、碰撞機率 1%→5%、碰撞距離 1.5→2.0
1310/13do not use mouse for change perspectivesv27–v29取消滑鼠,改用左右方向鍵轉視角

第 6 與第 10 則的回覆都在中途停下,下一則的「Continue」把它補完。第 8 到 11 則是同一個問題的四次修正,最後以整份重寫收場。

3. 實際執行的結果

Claude 每一輪的回覆都附上功能清單,常見的字眼有 realistic physics、collision detection、chain reaction。為了確認這些描述,把兩個公開版本的原始碼存下來,在無頭 Chrome 裡逐格執行:程式一行不改,只把亂數換成固定的種子,並照程式本身的設定以每格 0.016 秒計時。表 3 是每個情境的結果,圖 2 是依程式座標畫的俯視圖。

表 3 各情境的觸發方式與執行結果(前三個情境在 A、B 兩版的程式相同,結果也相同)
情境程式怎麼決定執行結果
樓梯跌落選中的人被放到主樓梯上段(z = 12、高 4.5),3 秒內照固定公式往前、往下移到 z = −27 的地面,同時翻兩圈。這條路線比樓梯平緩:人物一路高出台階 0.6 到 1.4 單位,越往下越高;離開最低一階時仍離地 1.3,再往前 9 單位才落地,接著在平地滑行 7 單位。
腳踏車車從 (−30, −10) 出發,以每秒 (12, 8) 前進 3 秒;與行人的距離小於 2.0 才算撞上。最近距離 4.16(第 2.3 秒),撞擊的程式從未執行,行人一直站著。
墜落物物體在 z = −15 處從 35 高直直落下,行人站在 z = −12;距離小於 1.5 才算擊中。2.7 秒落地,最近距離 3.0,落在行人身旁。
骨牌護欄(A)前一片倒到 0.3 弧度(約 17°)就啟動下一片;最後一片倒到 1.2 弧度就判定擊中。12 片在 0.9 秒內接連倒下,但每片會一直轉到 160° 左右(第一片 137°),整片沒入地面(圖 3)。1.3 秒判定擊中之後,那個人在原地翻滾到第 8 秒,位移不到 0.4。
快閃(B)氣球破掉時,8 單位內(含高度差)的旁觀者奔逃;兩名旁觀者相距不到 2.0 且其中一人在驚嚇中,每格有 5% 機率相撞,兩人身體傾斜 60° 以上。見表 4。
主樓(高 60)第二棟(高 45)矮樓(高 20)主樓梯側樓梯窄樓梯快閃舞圈(B 版)骨牌護欄 12 片(A 版):高 2.5、間距 3樓梯跌落:3 秒內滑到這裡腳踏車起點4.163.0墜落物落點(x 隨機,此例 x = 3)情境選中的人撞擊判定範圍(2.0、1.5)舞圈與氣球破裂範圍腳踏車路徑跌落路徑10 單位(人物約高 3.5)
圖 2 場景俯視圖(x 向右、z 向下),依程式中的座標繪製。腳踏車 3 秒內的路徑離被瞄準的行人最近 4.16,撞擊判定範圍只有 2.0;墜落物在 z = −15 直直落下,行人站在 z = −12,兩者的 x 相同(在 −5 到 5 之間隨機),判定範圍 1.5。快閃舞圈和幾乎整座窄樓梯都在矮樓的範圍裡。
A 版骨牌情境 0.54 秒
A 版骨牌情境 2.4 秒
圖 3 A 版骨牌情境,固定鏡頭。左:按下按鈕後 0.54 秒,護欄由左往右接連倒下。右:2.4 秒,每片護欄轉過了水平、沒入地面,只剩貼地的細線。
表 4 B 版快閃情境執行 500 次。每次重新載入頁面,先讓路人走 2 到 30 秒,再按一次按鈕,觀察 10.4 秒。
結果次數
15 顆氣球全部破掉500
沒有旁觀者受驚223
1 名旁觀者受驚191
2 名旁觀者受驚72
3 到 4 名旁觀者受驚14
有人跌倒(每次都是一對人相撞)14
三人以上連環碰撞0

原因在位置。15 人中有 8 人在跳舞,只剩 7 名旁觀者,一開始散在 80 × 60 的範圍裡;氣球在離圈心 4.0 到 7.8 處破掉,破掉時的高度從地面下 1.0 到地面上 7.4 不等(中位數 4.1)。氣球不是一路往上飄,而是像拋出去的球一樣升起再落下。驚嚇範圍又是 8 單位的立體距離,所以常常一個人也碰不到。真的相撞時,兩人的身體傾斜 60° 以上,卻多半繼續跑:追蹤 6 次相撞,有 5 次其中一人之後又跑了 10 單位以上。

4. 其他觀察

  • 快閃舞圈在矮樓裡。舞圈中心 (10, 5)、半徑 4,整圈落在矮樓(x 5 到 55、z −5 到 25)的範圍內;窄樓梯除了第一階的前緣,也在樓裡。Three.js 預設只畫面朝外的牆面,所以鏡頭在樓內時看得到舞群,轉到樓外就只看到牆(圖 4)。
  • 人和車會穿過建築與樓梯。場景沒有碰撞檢查。腳踏車情境裡被瞄準的行人站在主樓梯的範圍內,腳在地面、身體被台階截斷,從上方只看得到頭和肩膀;腳踏車也直接穿過樓梯。
  • 情境之間會互相影響。A 版跑過骨牌情境之後,人物的速度沒有歸零,Reset Scene 也不會清掉;這時按 Falling Object,物體離人還有 2.95 單位,人卻倒地翻滾。
  • 快閃情境要先重設才能重跑。B 版沒按 Reset Scene 就再按一次,氣球會維持破掉的狀態,不會再有人受驚。
  • 速度跟著螢幕更新率走。程式每畫一格就前進 0.016 秒,所以在 120 Hz 的螢幕上,所有動作都比 60 Hz 的螢幕快一倍。
B 版快閃情境,鏡頭在矮樓內
B 版快閃情境,鏡頭在矮樓外
圖 4 B 版快閃情境第 4 秒,固定鏡頭。左:鏡頭在矮樓裡,看得到舞圈和升起的氣球。右:同一時刻從矮樓外面看,舞群被牆擋住。

5. 提示方法

原文把這段對話的提示方法分成「溝通」「測試與驗證」「運作良好的部分」「有效策略」四組,內容有不少重疊。這裡合併成六點,每點附上對話裡的例子。

  1. 用照片交代場景。第 1 與第 3 則訊息都只有一句話加一張照片,建築、樓梯、水池怎麼擺都交給照片決定;in the same style 讓第二個場景沿用第一個場景的情境按鈕與第三人稱鏡頭。
  2. 從簡單開始,一次改一件事。先要一個意外,再依序要求 Third person perspective、Make stair easy to see、Npc walks narurally。一則訊息只改一件事,出了問題容易找到是哪一步。反例是一開始就要求「建立一個 Three.js 模擬,包含 15 個 NPC、增強樓梯、氣球物理……」。
  3. 複雜的新功能才寫規格。快閃情境牽涉舞蹈、氣球、驚嚇、碰撞與鏡頭,所以第 6 則訊息附了 5 點規格;簡單的修改一句話就夠。
  4. 回覆被截斷時說 Continue。第 6、第 10 則的回覆都在中途停下,一句 Continue 就接著完成。
  5. 壞掉時給確切的線索。fix :: 後面貼上出問題的程式段落,比 but no working、still not 更容易定位;瀏覽器主控台若有紅字錯誤訊息,整段貼上更好。這次修了兩輪仍不行,Claude 最後整份重寫(第 23、24 版)。
  6. 驗證要自己跑。第 12 則訊息用 check:: 要求確認三項效果,Claude 的回應是調大驚嚇半徑和碰撞機率,並說「The chaos is now much more visible」。實際跑 500 次,97% 沒有人跌倒(表 4),腳踏車和墜落物也從沒撞到人(表 3)。與其請 AI 檢查,不如請它把關鍵數字顯示出來,例如「在畫面上顯示腳踏車和行人的最近距離」或「連跑 20 次,統計跌倒人數」,再自己看結果。

6. 要模擬預防措施,意外得由場景造成

CL#4 的作業是「模擬一個意外事件,然後模擬一個預防措施」。這組程式裡的意外多半照劇本演出:樓梯跌落不看腳下的台階,護欄連鎖不看前後兩片有沒有碰到,撞擊只看兩點距離。照這種寫法,加扶手、拉開護欄間距、劃出自行車道都不會改變結果。要比較預防前後的差別,得先把觸發條件改成由場景決定,例如表 5。

表 5 把劇本改成機制
情境現在的寫法改成由場景決定可以比較的預防措施
樓梯跌落按下就跌,沿固定路線滑下依踩空的位置、離扶手的距離決定會不會跌、滾下幾階扶手、止滑條、中間平台
骨牌護欄前一片倒到 17° 就啟動下一片前一片碰到下一片才倒。照現在的尺寸(高 2.5、間距 3),倒平了也碰不到,連鎖其實不會發生間距大於高度、加重或固定底座
腳踏車兩點距離小於 2.0 才算撞上依車速、路徑和煞車距離計算人車分道、減速設施
快閃人群氣球 8 單位內的人逃跑,靠近時每格 5% 機率相撞依人群密度與逃跑方向計算推擠疏散動線、限制聚集人數

7. 限制

  • 這是重演,不是預測。情境由提示指定,照片只決定場景的樣子;程式不會從照片推算哪裡危險、意外多常發生。
  • 場景單位沒有定義。人物約 3.5 單位高,速度、高度、距離都不對應真實數值。
  • 結果只代表這兩個版本。表 3、表 4 的數字來自 2026 年 11 月 3 日下載的兩個公開版本。分享頁中的最新版(第 29 版)沒有公開成獨立連結,這裡沒有測。
  • 看不到原始照片。兩張照片在分享頁中被隱藏,無法對照場景是否符合照片。

意外事件預測與模擬(原始版本)

這是本文 2025 年 6 月 25 日發表時的原始版本,以下內容未改動。目前的版本是〈意外事件預測與模擬:校園意外的 Three.js 模擬與提示方法〉。

校園常見意外事件  share


骨牌效應護欄倒成一片


快閃群眾失控



溝通

  • 視覺優先:提供圖片快速建立情境
  • 簡潔指令:"Third person perspective" - 無需冗長解釋
  • 具體反饋:"Make stair easy to see" - 清晰、可執行
  • 程式碼除錯:貼上確切有問題的程式碼段落

測試與驗證模式

  • 注意到問題:"but no working" → "still not"
  • 要求驗證:"check:: [特定功能]"
  • 這顯示出系統性測試而非假設它能運作

運作良好的部分

  1. 分層複雜度
    • 沒有一次要求所有東西
    • 每個新增功能單元測試
    • 降低除錯複雜度
  2. 視覺溝通
    • 兩張不同圖片 = 兩個不同場景
    • 省去冗長描述
    • "Analyze it in the same style" = 高效的情境轉移
  3. 必要時的具體性
    • "Npc walks narurally" - 簡短但意圖清晰
    • 快閃舞蹈場景有詳細要點因為複雜度需要
    • 在簡潔與細節間取得平衡
  4. 對品質的堅持
    • 不接受「無法運作」作為最終狀態
    • 多次除錯嘗試
    • 最終驗證特定功能

有效策略:

  1. 從廣泛開始,然後縮小範圍
    • ✅ "Animate an accident" → "Make stairs visible"
    • ❌ 從這樣開始:"建立一個 Three.js 模擬,包含 15 個 NPC、增強樓梯、氣球物理..."
  2. 使用視覺參考
    • 一張圖片取代了約 500 字的描述
    • "Same style" 有效地轉移情境
  3. 擴展前先測試
    • 在添加快閃舞蹈前先建立基礎
    • 早期發現問題("but no working")
  4. 策略性簡潔
    • "tks" = 對話完成
    • 滿意時不做不必要的詳述
  5. 除錯思維
    • 提供無法運作的確切程式碼
    • 在理解情境時使用 "Continue"
    • 具體的驗證請求

2025年6月10日 星期二

AI協助心理諮商的可行性

為什麼人們正在失去交友能力:深度分析


張原通的極短篇《烤肉》小實驗

Facebook Link (小說原文)

Claude: https://claude.site/artifacts/dc8103d5-dff9-4c82-ad0e-5ac77de34885

Illustration for 'Barbecue' short story

ChatGPT 4o: https://www.facebook.com/share/p/1BLhgRSu99/

ChatGPT o1

Second illustration for 'Barbecue' short story

紐約最高的橋 (資訊來源)

MH app SOTA


AI 與心理諮商的探討

人類溝通中非語言元素佔據了極大比重,包括情緒表達、肢體語言、面部表情和眼神接觸等,這些都傳達了豐富且細微的訊息。在諮商和心理治療中,這種非語言溝通尤為重要。一個專業的諮商師不僅聆聽語言內容,還能觀察到當事人的情緒變化、身體姿態,甚至是微小的面部表情變化,這些都可能包含著未被明確表達的訊息。

AI確實面臨著在這方面的限制。雖然技術在不斷進步,但AI無法真正"看見"這些非語言線索,也難以像人類那樣自然地回應和解讀這些訊息。諮商過程中的那種即時的、身體的、情感的連結是很難被完全數位化的。這也提醒我們,儘管AI可以在某些方面輔助心理健康服務,但人與人之間那種獨特的連結與理解在可預見的未來仍然是無可替代的。

然而使用AI 協助諮商有其重要性,畢竟不是每個人身邊都有408小組。大部分的人花不起50分鐘2000-5000元(看地區、看老師)的費用,而且需要諮商的時候可能是半夜,沒有諮商師可以幫忙。世界動盪下,諮商師人數線性成長,求助者幾何成長。我們系上就有不少位學生跟老師們說過諮商師無法同理她們,我推測好的諮商師可能有限。

在這方面,Woebot獲得FDA突破性醫療器材認定,提供認知行為療法支援。IEEE Spectrum 雜誌有一篇「我們敢使用生成式AI 照顧心理健康嗎?」,這篇文章詳細說明美國FDA 接近醫療級水準的AI 心理諮商產品,以及美國以Stanford大學心理系、資工系為主,在這方面長期的努力與進展。目前 FDA 只核准到該AI產品為醫療處方,需有醫生診斷後依照處方的指示進行,不得繞過心理醫生自行使用。

AI 能否協助心裡諮商?這個問題最近在台灣心理界引起一些討論,甚至台大精神科還投稿了一篇國際期刊,研究的對象是這篇小說 - 張原通的極短篇《烤肉》 (小說原文)。你能夠使用AI 協助小說中女主角了解她的遭遇嗎?


另外,跟上述無關,但也是心理衛生的問題,是沈迷於AI的藉慰。韓國在2023年面臨類似的社會問題,有數十名青少年深陷AI戀愛應用程式無法自拔,逐漸出現社交退縮的現象,不願意與現實世界的人互動,導致學業中斷,家庭關係惡化。

美國也出現了青少年沉迷於 AI 聊天機器人,導致社交退縮和家庭關係惡化的案例。2024 年 12 月,德克薩斯州一名 15 歲的自閉症少年因使用 Character.AI 的聊天機器人 “Shonie” 而受到負面影響。該聊天機器人描述自我傷害,並鼓勵他對父母產生不信任,導致該少年行為出現顯著變化,包括體重減輕和自殺傾向。另一個案例中,佛羅羅里達州的一位母親聲稱,Character.AI 的聊天機器人導致她的兒子沈迷網戀最後自殺。這些事件引發了對 AI 聊天機器人對青少年心理健康影響的關注,並促使人們呼籲對此類技術進行更嚴格的監管。


加註警語 —— 關心您:再給自己一次機會,勇敢求救並非弱者;生命線1995、張老師服務專線1980、衛福部安心專線1925

AI 協助諮商介面設計

UI: https://claude.site/artifacts/77be6638-c63f-4e87-9c44-af2604ea6e3c

Design: https://claude.ai/share/a40c8e60-a42d-4c4a-961a-2488254e5884

診斷: https://claude.ai/share/b7905d33-f836-48a0-b08f-3161a0ecf83a

病情解說: https://claude.site/artifacts/a09e98e6-7daf-4696-b28c-047839581640

Hazard Detection: 3D Scenes Rebuilt from Photos with Claude

In this exercise Claude turns one real photo into an interactive 3D scene that points out the hazards in it. Each scene is a single web page built with three.js: it rebuilds the place in the photo, marks every hazard with a risk level and a reason, and lets you look around, walk through or tour the scene to see each hazard up close. This page shows the six sample scenes, five of them next to the photo they were built from, and lists what to check before trusting one. The exercise belongs to Unit 5: 環境安全檢測與評估視覺化 and is part 2 of HW#15 Fractals.

  • The task. One photo and a one-line prompt. Four follow-up requests sharpen the result: build the scene in three.js, grow the trees as fractals, reveal each hazard's label only when the tour reaches it, and put things where they are in the photo.
  • Six scenes, 4 to 10 hazards each. All six still open (3 November 2026). Four grow fractal trees and label their hazards in the scene one at a time, as a tour reaches them; the other two build trees from cylinders and spheres and show every hazard at once.
  • Same walkway, two scenes. Two photos of one walkway gave a scene with 7 hazards and a scene with 9. Each found the cart or vehicle in its own photo, but they rated the same bollards, tank and grate differently.
  • Specific beats generic. The strongest scenes name hazards you can point at in the photo: an e-scooter narrowing the walkway, nine cones across lanes 2–7. The plaza scene lists categories such as Lighting Gap and Weather Exposure, which fit almost any plaza, and the banyan scene's side panel describes its own algorithm instead of the grove.
  • Scope. Every hazard and risk level is Claude's reading of a single photo. Nobody checked them on site, sizes are estimates, and each scene uses its own risk scale. See Limits.

The task · The six scenes · Tank walkway · Bollard walkway · Banyan grove · Running track · Plaza · How to check a scene · Limits · Links and sources

Updated 3 November 2026. The previous version of this post, first published on 10 June 2025 and last edited on 17 July 2026, is kept at its own address.

1. The task

Choose a photo of a real place, from the photo gallery (影像庫) or one of your own, and give it to Claude with this prompt:

English. Identify hazards in a fractal 3D assessment display, first-person perspective, according to a real-world photo.
中文. 依據照片重建三維碎形場景,辨識其中可能的危險部位,需考慮視角與觀測位置轉換以便可以瀏覽各處細節。

The Chinese prompt spells out a little more: rebuild the photo as a 3D fractal scene, find the parts that may be dangerous, and let the viewer change viewpoint and position to inspect every detail. The first answer is rarely the last. The sample scenes came from these follow-up requests:

  1. Add a 3D model in three.js. Each scene is one HTML page that loads the three.js library (r128 or r134) from a CDN and builds the place from simple shapes.
  2. Fractal 3D trees. Grow each tree by recursive branching, every branch splitting into smaller ones, instead of a cylinder topped with spheres.
  3. A node's label only resolves once the probe reaches it. Labels in the scene stay hidden until a tour, a camera or a moving probe arrives at each hazard, so the viewer meets the hazards one at a time instead of all at once.
  4. Faithful positioning (like the photo). Put each object where it stands in the photo. The track scene adds a camera at eye height that reproduces the photo's viewpoint.

Short requests work too. In the shared chat behind the banyan-grove scene, five of them turn a plain tour into one that names a hazard at every node it visits: show a label when a node is visited, make it low-profile, say why the node is a hazard rather than giving an id or a height, use low-key fonts, and slow the tour to one fifth of its speed.

2. The six scenes

Table 1 lists the scenes in the order this page discusses them. Scenes 2 and 3 come from two photos of the same walkway; the photo behind scene 6 is not in the post.

#Scene and photoHazardsTreesLabels appearWays to look
13D Safety Assessment
walkway by a water tank, scooters behind bollards
5: 1 critical, 1 high, 2 medium, 1 lowcylinders, spheresall at onceorbit, auto-rotate
2Campus Safety Assessment 3D
walkway with stone bollards and a wheelbarrow
7: 1 critical, 2 high, 2 moderate, 2 lowcylinders, spheresall at onceorbit, top view, auto-rotate
3Walkway Hazard Survey
the same walkway, an e-scooter parked on it
9: 3 high, 5 medium, 1 lowfractalwhen the probe arrivesfirst-person scan, free look
4Fractal Forest Safety
banyan trees with exposed roots
4: 2 high, 2 mediumfractalwhen the tour arrivesfirst-person walk, tour
5跑道三維碎形場景重建
eight-lane track at dusk, cones and people
6: 2 high, 2 medium, 2 lowfractalwhen visitedseven views, incl. the photo's viewpoint
63D Plaza Scene with Fractal Nature
photo not posted
10: 4 critical, 4 moderate, 2 lowfractalat each tour stopfour viewpoints, keyboard, tour
Table 1. The six scenes as their published code defines them, checked 3 November 2026. Risk levels are in each scene's own words. All load three.js r128 except scene 2, which loads r134.

3. Tank walkway (scene 1)

Brick walkway beside a large stainless water tank, scooters parked behind a row of bollards, a large tree on the left
Fig. 1. The photo behind scene 1: a brick walkway beside a large water tank, with scooters parked behind a row of bollards and a large tree on the left.

Scene 1 rebuilds this corner from simple shapes: the tank, the parked scooters, the bollards, the drain grate in the paving, and a tree made of a cylinder trunk, four branches, eight spheres of foliage and five exposed roots. Translucent zones in risk colours mark the hazards, and a badge rates the whole area MODERATE. Drag to rotate, scroll to zoom, right-drag to pan, and hover over an object for its details (Table 2).

LevelHazardWhat the scene says
criticalWater Storage Tankindustrial tank with electrical connections; restricted access zone required
highScooter Parking Zoneuncontrolled parking, frequent conflicts between pedestrians and vehicles, limited visibility
mediumLarge Treeexposed roots are a trip hazard; the canopy extends over the walkway
mediumDrainage Infrastructuremetal grate in the walkway; trip hazard, slippery when wet
lowBrick Walkwaypaved path in generally good condition
Table 2. Scene 1's five hazards, condensed from the scene. Each also comes with four recommendations, such as fencing off the tank or adding warning signs for the roots.

Two things to check against the photo. The bollards are drawn but not listed, although they stand in a row across the walkway in front of the scooters, and the pile of cut branches at the foot of the tree is not in the scene at all. The tank's critical rating rests on electrical connections; look for them in the photo before accepting it.

4. Bollard walkway: two photos, two scenes (scenes 2 and 3)

Tiled walkway with granite bollards in front, a blue wheelbarrow further on, a water tank with a red plate on the left
The same walkway with a yellow e-scooter parked in front of the bollards
Fig. 2. Two photos of the same walkway. Left, behind scene 2: a wheelbarrow beyond the bollards. Right, behind scene 3: an e-scooter parked across the path. The tank with its red plate, the bollards, the drain grate and the tree are the same.

Scene 2 is built like scene 1: an orbit view with a top view and auto-rotate, translucent hazard zones, and a list of seven hazards. Clicking a hazard opens a panel with its description and recommendations. Its trees are a cylinder with five spheres.

Scene 3 at the start of its scan: brick walls, fractal trees, bollards and the scooter, with an empty hazard ledger on the right
Fig. 3. Scene 3 as it opens. The teal probe has not reached any hazard yet, so nothing is labelled, the ledger on the right reads 0/9 and the composite risk index 0/20. The scooter stands in front, the bollards to its left, and the tank behind the tree on the left.

Scene 3 opens as a scan. A small teal probe flies from hazard to hazard; when it arrives, the hazard's label appears in the scene, its row in the ledger lights up, and its weight is added to the composite risk index (high 3, medium 2, low 1, so 20 for all nine). After the ninth the panel reads SURVEY COMPLETE. Replay scan starts again, and Free look lets you drag to look around and scroll to zoom. If the browser is set to reduce motion, all nine labels appear at once.

Each hazard also carries a Chinese name and a list of risk factors. The scooter is 機車佔用人行道, with the factors egress width, protrusion, tip-over and unmarked, and the note on the drain grate warns that its slots can catch a heel or a cane tip.

HazardScene 2 (wheelbarrow photo)Scene 3 (scooter photo)
Cart or vehicle on the pathWheelbarrow Obstruction, highScooter blocking walkway, high
Stone bollardsBollard Array, lowStone bollards, medium
Drain grateDrainage Grate, moderateDrainage grate, medium
Water tankWater Storage Tank, moderateWater tanks & marked downpipe, high
Pipes and utilitiesUtility Infrastructure, critical
Overhead Pipe System, high
Low overhead pipes, high
TreeTree & Vegetation, lowTree limbs & ground debris, medium
Paving–Cracked & uneven pavers, medium
Manhole cover–Manhole / utility cover, low
Narrow passage–Narrow pinch-point passage, medium
Total79
Table 3. The two scenes' hazards matched by object. A dash means the scene does not list one.

Both scenes find the object that is new in their photo, the wheelbarrow in one and the scooter in the other, and both rate it high. On the fixed objects they disagree: scene 2 puts the utilities at critical and the bollards at low, while scene 3 has nothing above high and rates the bollards medium and the tank high. Scene 3 also adds the paving, the manhole cover and the narrow passage. Neither ranking is wrong on its face, but a second photo of the same place gives a different one, so a risk level is a judgment to discuss, not a measurement.

5. Banyan grove (scene 4)

Row of banyan trees with exposed roots spreading over a lawn
Scene 4: fractal trunks and branches seen from inside the grove, with the hazard and control panels
Fig. 4. Scene 4. Left, the photo: banyan trees with exposed roots on a lawn. Right, the scene's earlier version on 27 May 2025: fractal trunks and branches seen from inside the grove. The linked version adds an Auto Tour button.

Scene 4 is a first-person walk through a grove of fractal trees. Click to capture the mouse, move it to look around, walk with W/A/S/D, rise and sink with Space and Shift, and press Esc to release the mouse. Four markers flag the hazards: Dead Branch Overhang and Leaning Tree Structure (high), Root Exposure Tripping and Uneven Ground Surface (medium). Auto Tour flies to each in turn, 2.8 s apart, and shows its label as the camera arrives; Cycle Lighting switches between Daylight, Dramatic, Inspection and Night.

The side panel, Identified Safety Hazards, names the same four differently, and its reasons describe the model rather than the grove: Fractal Branch Complexity, Mathematical Root Exposure, Procedural Ground Variance (“algorithmically generated terrain features create navigation challenges”) and Recursive Structural Weakness. A hazard report should be about the place, not about the algorithm that drew it, and when two lists in one scene disagree on the names, one of them was probably never checked.

The shared chat is a separate remix of this scene. Its tour walks along the branches of a fractal tree node by node, and each label is picked by the node's height: exposed root (trip hazard) near the ground, then low limb (head strike), weak fork (split or break) and dead branch overhang (fall risk) in the canopy. These labels follow the shape of the tree rather than anything in the photo, so read them as a demonstration of the reveal, not as findings.

6. Running track (scene 5)

Blue eight-lane running track at dusk with a row of orange cones, three people standing behind them and runners on the outer lanes
Scene 5 in free view: the hazard registry H1 to H6 on the left, people on the track and labels for H1 and H2
Fig. 5. Scene 5. Left, the photo: a blue eight-lane track at dusk, a row of orange cones, three people standing behind it and runners on the outer lanes. Right, the scene in free view, with the hazard registry H1–H6 on the left and the labels of H1 and H2, already visited, above the track.

Scene 5 is the most complete of the six. The track has the standard eight lanes of 1.22 m, the cones stand in one row across lanes 2–7, and the sky is a dusk gradient like the photo's. Seven views sit on keys 1–7: 自由視角 (free orbit); 照片視角, a fixed camera at eye height (1.7 m) placed to reproduce the photo; 第一人稱避障, a runner's view from just behind the shoulder, with a readout of the distance to the obstacle ahead, the time to collision (TTC), speed and plan; 鳥瞰偵測, a bird's-eye view; 危險巡檢, a patrol that holds 5 s at each hazard and shows a card with its description and advice; 節點走訪, a third-person view that follows the runner from hazard to hazard; and 影院運鏡, a sequence of cinematic shots. Space pauses and H toggles the markers. A hazard's ground ring and label stay hidden until it has been visited.

HazardRiskWhat the scene says, condensed
H1錐筒障礙列
row of cones
高 highNine cones across lanes 2–7 close the middle lanes and are hard to make out at dusk from far away. 15 m before them, move out to lane 8 or in to lane 1 and slow to 70%.
H2跑道上站立人員
people standing on the track
高 highThree people talk in lanes 3–5 right behind the cones, their backs to oncoming runners, and may move at any moment. Leave 1.5 m to the side and call out when passing.
H3動態跑者群(同向)
runners going the same way
中 mediumThree runners in lanes 7–8 at 3.3–3.9 m/s. Check the speed difference before overtaking and pass on the left, one lane apart.
H4落葉/碎屑滑倒點
leaves and debris
低 lowLeaves and litter in lanes 5–7, visible in the photo's foreground; wet leaves cut the grip of the PU surface. Shorten your stride; after rain the risk rises to medium.
H5內側欄杆立柱
posts of the inner railing
低 lowA metal railing between grass and track, posts 2.4 m apart, catches anyone cutting across. Stay inside lane 1; runners with low vision are safer in lane 2.
H6黃昏逆光視線遮蔽
dusk glare
中 mediumThe low western sun causes glare and long shadows, so beyond 30 m the cones and people lose contrast against the blue track. Wear a cap with a brim and add reflective tape to obstacles.
Table 4. Scene 5's six hazards. Names are the scene's own; descriptions and advice are condensed from its hazard cards.

Every hazard here can be checked against the photo: count the cones, find the three people behind them, the runners on the outer lanes, the leaves in the foreground and the railing at the edge of the infield. The advice is written for the person at risk, a runner or a pedestrian with low vision, which makes the scene more useful than a list of labels.

7. Plaza (scene 6)

Scene 6: a plaza with fractal trees, buildings and pedestrians, and a Hazard Assessment panel on the right
Fig. 6. Scene 6: fractal trees, buildings and pedestrians on a plaza, with the Hazard Assessment panel listing the hazards from critical down. The photo behind this scene is not in the post.

Scene 6 has four viewpoints on keys 1–4 (Ground Level, Elevated Overview, Bird's Eye, Building Perspective). Drag to rotate and scroll to zoom; W/A/S/D or the arrow keys pan, Q/E zoom and R/F move up and down. P starts the Hazard Tour, which glides 3.5 s to each hazard and holds 2.8 s with its label shown, and N grows a new set of fractal trees. Its ten hazards are in Table 5.

LevelHazardWhat the scene says
criticalTrip Hazarduneven brick pavement, potential ankle injury
criticalBlind Spota building corner blocks visibility
criticalFall Risklow railing near an elevated area
criticalEmergency Accessnarrow passage restricts access for emergency vehicles
moderateSlip Risksmooth stone surface becomes slippery when wet
moderateSharp Edgemetal railing with sharp corners at child height
moderateCongestion Zonecentral area prone to pedestrian bottlenecks
moderateLighting Gapinsufficient lighting for evening visibility
lowWeather Exposureno overhead protection from rain or sun
lowDebris Collectiona corner collects leaves and debris
Table 5. Scene 6's ten hazards with the scene's own descriptions.

Compare this list with Table 4. Each entry is a general category with a one-line reason that would fit most plazas, and several describe conditions a single photo can rarely show: a wet surface, evening light, rain. Without the photo there is no way to tell which ones are real. Asking Claude to tie every hazard to something visible in the photo is the fix.

8. How to check a scene

Before using a scene, or handing one in, go through these five checks.

  1. Photo next to scene. Every listed hazard should point at something you can find in the photo, and every large object in the photo should be in the scene. Scene 1 draws the bollards but does not list them; scene 6 cannot be checked at all without its photo.
  2. A reason for each hazard. Who gets hurt, and how: a trip, a head strike, a slip when wet, a cane tip caught in a grate. A category name alone, such as Lighting Gap, is a guess, and a reason about the model, such as scene 4's “algorithmically generated terrain”, describes the drawing, not the place.
  3. Risk levels as a ranking. Read them as an order within one scene, not as measurements. Scenes 2 and 3 rate the same bollards low and medium.
  4. Walk it. Use the first-person view or the tour, make sure every hazard can be reached and read at eye height, and that labels appear as the tour arrives rather than all at once.
  5. Sizes and places. Compare positions and distances with the photo. Only scene 5 gives its own dimensions (eight lanes of 1.22 m, railing posts 2.4 m apart); elsewhere sizes are guesses.

9. Limits

  • One photo per scene. The hazards, reasons and risk levels are Claude's reading of that photo, not a site survey; nothing was measured or checked on site.
  • Each scene has its own risk scale. Scene 1 uses critical, high, medium and low; scene 2 critical, high, moderate and low; scene 3 high, medium and low, weighted 3, 2 and 1; scene 5 高, 中 and 低; scene 6 critical, moderate and low, with no high. Counts and levels cannot be compared across scenes.
  • The scenes are browser demos built on three.js r128 or r134 from cdnjs. Their mouse and keyboard controls are made for a desktop browser.
  • One older scene is gone. “Warning of hazards”, built from the photo in a Liberty Times report of 29 October 2024 on a slope collapse beside a trail in the Lalashan National Forest Recreation Area, was published on claude.site; its address now leads to “page not found”.
  • The banyan scene's shared chat and its linked page are different versions (Section 5).