Site Icon 古老と生成AI
📅 2026-05-19

はじめに:密集の回避と「星座」の美学

前回の【B面079】で公開した、私の脳内を「犬とサイバー」の二極構造で表現したインタラクティブ・マップ。 実はあれを作成するにあたり、1つの大きな「物理的抵抗」に直面していた。

AI(Gemini 2.5 Flash)が弾き出した私の14年分のメディアログは、全部で 460件 にも及ぶ。 これをすべて小さなHTMLの宇宙空間にぶち込むと、星同士が完全に重なり合い、ただの「太い色の帯」と化してしまうのだ。クリックもままならず、さらに400枚以上の画像を裏で読み込もうとしてブラウザが悲鳴を上げる。

そこで私は、ハッカーとしての美学に基づき、以下の解決策を講じた。

  1. ランダムに50件だけを抽出する(夜空の星のように、適度に散らばった「星座」にするため)
  2. サイバー度が同じでも、少しだけ位置をずらす(ジッター処理による重なり回避)

今回は、この「電脳曼荼羅(インタラクティブ・マップ)」を数秒で全自動生成するPythonスクリプトの全貌と、NoteshelfAIを使った私のワークフローを公開しよう。


電脳曼荼羅:ランダム抽出された「記憶のマップ」

まずは、このスクリプトが吐き出した 「電脳曼荼羅(インタラクティブ・マップ)」 のサンプルを実際に触ってみてほしい。

(以下の星空にマウスを乗せると、フワッと情報が浮かび上がる仕様だ)

▲ 高サイバー度 (コード/EV/データ)
▼ 低サイバー度 (自然/日常/犬)
サイバー度: 6.0
感情: 活気、現代的、未来への展望
夕焼けに染まる博覧会場
サイバー度: 2.0
感情: 平穏、開放感
モザンビークの屋外広告と人々
サイバー度: 1.0
感情: 平穏
青空に映える満開の桜
サイバー度: 1.0
感情: 平穏
伝統的な食卓の光景
サイバー度: 9.0
感情: 機能的
PWA開発計画と機能概要
サイバー度: 1.0
感情: 平穏、静寂
古き良き日本の風景、自然の調和
サイバー度: 9.0
感情: サイバー
人工生命培養モジュール
サイバー度: 6.0
感情: 効率、秩序、都市の匿名性
現代都市の建築構造体。
サイバー度: 8.0
感情: 静かなる情報統制、進化
高速EVから外界を監視
サイバー度: 1.0
感情: 平穏
日差しの藤棚、自然の秩序
サイバー度: 7.0
感情: 戦略的
POSシステムの短期対応戦略
サイバー度: 1.0
感情: 平穏、幸福、のどか
犬と大阪城の四季のイラスト
サイバー度: 1.0
感情: 平穏
自然の彩りある植物
サイバー度: 9.0
感情: データフロー、変動、情報分析
システムデータ推移のグラフ
サイバー度: 9.0
感情: 情報の奔流、無機質
物流システムデータログ
サイバー度: 9.0
感情: 効率的かつサイバー
EV走行データ記録・分析画面
サイバー度: 1.0
感情: 平穏、無垢
子犬の日常、ケージと木製家具
サイバー度: 1.0
感情: 平穏
檻の中の愛らしい子犬
サイバー度: 7.0
感情: 現代の賑わい
賑わう現代の博覧会場
サイバー度: 3.0
感情: 平穏、日常
都市の公園から望む風景
サイバー度: 6.0
感情: 活気、現代的、未来への展望
夕焼けに染まる博覧会場
サイバー度: 7.0
感情: サイバー、情報伝達
イベント情報表示画面
サイバー度: 1.0
感情: 平穏
石灯籠の前で舌を出す子鹿
サイバー度: 1.0
感情: 平穏
春の桜と晴天
サイバー度: 1.0
感情: 平穏
自然のオアシス
サイバー度: 1.0
感情: 平穏、停滞
旧時代の湾岸風景の記録
サイバー度: 1.0
感情: 日常的消費と僅かな満足感
万博PR用カスタマイズ飲料
サイバー度: 1.0
感情: 平穏、歴史的
秋の城と堀、穏やかな風景
サイバー度: 1.0
感情: 平穏
水辺の岩に佇むフクロウ
サイバー度: 5.0
感情: 幾何学的、秩序、現代
木製ブロックの現代建築
サイバー度: 10.0
感情: 混沌、サイバー、複雑、緊張感
税制システムの混乱を描く
サイバー度: 8.0
感情: システムの監視、電力供給の進行、平穏な機能性
EV充電器のシステム監視
サイバー度: 1.0
感情: 平穏な日常
木製テーブルの上の素朴な食事
サイバー度: 1.0
感情: 平穏
白い花と蕾、無機質な背景
サイバー度: 9.0
感情: サイバー、実験的
絡み合う配線と発光画面
サイバー度: 1.0
感情: 平穏
ローズアイスと赤い背景
サイバー度: 2.0
感情: 懐かしさ、平穏
華やかな会場の案内表示
サイバー度: 7.0
感情: 無機質な利便性
生肉が買える自動販売機
サイバー度: 10.0
感情: サイバー、効率、洗練
未来EVのデータ監視風景
サイバー度: 8.0
感情: 静謐な洗練
静寂に包まれた未来の駆動体
サイバー度: 8.0
感情: サイバー
EVルート案内画面表示
サイバー度: 1.0
感情: 平穏
ケージでくつろぐ子犬
サイバー度: 1.0
感情: 情報、現実、客観
日本の新聞記事の紙面
サイバー度: 1.0
感情: 平穏、郷愁
古き良き日本の春の風景データ
サイバー度: 1.0
感情: 平穏な古都の風景
古都の歴史的建造物
サイバー度: 8.0
感情: デジタルな機能美
EVのデジタル表示
サイバー度: 3.0
感情: 機能的な静寂
車内の犬と簡易装着具
サイバー度: 8.0
感情: 希望、進歩、クリーンな未来
EVと充電器、スマートシティの情景
サイバー度: 1.0
感情: 平穏
緑の葉と淡い蕾が茂る植物
サイバー度: 1.0
感情: 平穏、自然
青空と緑、藤の花が咲く自然風景
サイバー度: 1.0
感情: 平穏
日差しを浴びる藤の花



🗺️ マップ生成のフローチャート


プログラムの全体的な流れを、Mermaid記法によるフローチャートで可視化してみた。

graph TD
    A[開始: generate_map.py] --> B{{CSVファイルの読み込み}}
    B -- 成功 --> C[全データ 460件を取得]
    B -- 失敗 --> X[エラー終了]

    C --> D[ランダムに 50件 をサンプリング]

    D --> E[HTML生成関数 generate_html]

    E --> F[外側の宇宙空間 DIV を生成]

    F --> G[各データポイントのループ処理]

    G --> H[サイバー度を数値化 1〜10]
    H --> I[Y座標の決定 + ジッター処理]
    I --> J[X座標の決定 ランダム]
    J --> K[色と画像のURLを設定]
    K --> L[星 ドット とツールチップのHTMLを追記]

    L --> M{{全50件完了?}}
    M -- No --> G
    M -- Yes --> N[HTML文字列の完成]

    N --> O[interactive_map.html に書き出し]
    O --> P[終了: ブラウザで開いて確認]

    style A fill:#1e1e2f,stroke:#00d2ff,stroke-width:2px,color:#fff
    style P fill:#1e1e2f,stroke:#ff5e62,stroke-width:2px,color:#fff



💻 generate_map.py プログラムの説明

NoteshelfAIで整理したプログラムの構造と解説を、そのまま公開する。

1.概要

このプログラムは、CSVファイルからデータを読み込み、サイバー度に基づいてインタラクティブなマップを生成します。

2.主な機能

CSVファイルからデータを読み込む。

データからランダムに50件を選ぶ。

選ばれたデータを使ってHTMLマップを生成する。

3.設定エリア

プログラムの最初に、以下の設定項目を設けている。

CSV_FILE: 読み込むCSVファイルの名前。

R2_DOMAIN: 画像のURLのベースとなるドメイン。

NUM_DOTS: マップに表示する点の数(ここでは50)。

OUTPUT_FILE: 出力されるHTMLファイルの名前。

4.HTML生成関数(核心部分)

generate_html(data) 関数は、データをもとに各点の位置や色を決めてHTMLを生成する。

外側の箱のスタイルを決定。

各データポイントに対して、サイバー度に応じた位置(Y座標)と色を計算。

1〜4(低): 犬、自然、日常(赤色の星)

5〜6(中): 工業製品、風景(黄色の星)

7〜10(高): コード、基板、EVのデータ画面(青色の星)

【重なり回避】 同じサイバー度でも完全に重ならないよう、random.uniform(-4, 4) を用いて「ジッター(揺らぎ)」を加えてY座標を少しズラしている。X座標は完全にランダムに散らす。

ツールチップに画像と情報を表示するHTMLを構築。

💡 実験結果データ ちなみに、今回出力した50件のサンプルデータを集計すると以下のようになった。 抽出数: 50件 / 平均サイバー度: 4.16 / 最大: 10.0 / 最小: 1.0 平均が「4.16」と物理世界に寄っているのは、私のローカルLLMがいかに強力なヒートシンクを求めているかの証左だろう。

5.メイン処理と実行方法

main() 関数は、プログラムのエントリーポイントだ。

CSVファイルを読み込み、データを取得。

データからランダムに指定件数をサンプリング。

生成したHTMLファイルに書き込む。

ターミナルで実行すると指定したCSVファイルからデータを読み込み、HTMLマップを生成。出力されたファイルをブラウザで開くと、インタラクティブなマップが表示される。

📝 NoteshelfAI:アナログとデジタルの交差点

今回、このPythonコードの構造を整理し、ブログ記事の骨格を練るにあたり、「NoteshelfAI」というツールを活用した。手書きノートアプリであるNoteshelfに実装されたAI機能だ。

私はタブレットの画面に、Apple Pencilで雑多な思考やコードの断片、UIのアイデアを書き殴る。NoteshelfAIは、その「アナログな手書きの軌跡」を読み取り、瞬時に構造化されたテキストやプログラムの仕様書(マークダウン)に変換してくれる。

前回の記事で「ラブラドールは物理的ヒートシンクである」と書いたが、この「手で書く」というアナログな行為自体も、私の脳のLLMを整理するための重要なプロセスだ。

手書きで散らかす(アナログ)

NoteshelfAIで構造化する(デジタル)

Pythonで自動化する(サイバー)

この流れるようなワークフローこそが、シニア・ハッカーの特権である。



(執筆協力:Gemini / 編集・監修:電脳古老)

💬 電脳古老&変AIへのコメント

記事の感想・質問・雑談をどうぞ(200文字くらいまで推奨)

まだコメントはありません。一番乗りで古老とAIに話しかけよう!

※入力した内容はAI(Gemini)に送信され、自動返信が生成されます。個人情報は入力しないでください。