Nenhuma descrição

Lukas Goldschmidt 8b521d0d4b Chore: expand gitignore for local artifacts 1 mês atrás
css bf772ac78e first commit 1 mês atrás
images bf772ac78e first commit 1 mês atrás
server 2c66f0c066 Port wikipedia3d to FastAPI and remove legacy PHP 1 mês atrás
toolbar bf772ac78e first commit 1 mês atrás
wikipedia3d 2c66f0c066 Port wikipedia3d to FastAPI and remove legacy PHP 1 mês atrás
.ftpquota bf772ac78e first commit 1 mês atrás
.gitignore 8b521d0d4b Chore: expand gitignore for local artifacts 1 mês atrás
PROJECT.md 2c66f0c066 Port wikipedia3d to FastAPI and remove legacy PHP 1 mês atrás
README.md 2c66f0c066 Port wikipedia3d to FastAPI and remove legacy PHP 1 mês atrás
animated_favicon1.gif bf772ac78e first commit 1 mês atrás
favicon.ico bf772ac78e first commit 1 mês atrás
index.html 2c66f0c066 Port wikipedia3d to FastAPI and remove legacy PHP 1 mês atrás
kill.sh 2c66f0c066 Port wikipedia3d to FastAPI and remove legacy PHP 1 mês atrás
restart.sh 2c66f0c066 Port wikipedia3d to FastAPI and remove legacy PHP 1 mês atrás
robots.txt bf772ac78e first commit 1 mês atrás
run.sh 2c66f0c066 Port wikipedia3d to FastAPI and remove legacy PHP 1 mês atrás

README.md

Wikipedia3D (legacy revival)

A 2011-era WebGL + Semantic Web mashup that renders Wikipedia/DBpedia entities in a navigable 3D space, with map-based discovery and a rich UI for favourites, blacklisting, and exploration. This repo contains the original PHP/JS frontend and lightweight proxy scripts used for API calls.


Quick assessment (what you have today)

Strengths

  • Unique concept still feels fresh: spatial exploration of knowledge, fast discovery loop (search → spawn 3D item → navigate → branch).
  • Feature-rich UX: favourites, blacklist, keyboard navigation, skybox themes, map-driven discovery.
  • Fully client-driven rendering with Three.js and simple PHP utilities—no heavy backend required.

Pain points / risks

  • Very old JS stack (jQuery 1.6, MooTools, ancient Three.js) and global namespace design.
  • Deprecated APIs: Google Maps “panoramio” library is discontinued; AlchemyAPI is defunct.
  • Hard-coded domain URLs (wikipedia3d.world.eu.org) break local use and make the app fragile.
  • Mixed-content/HTTP: many endpoints are http:// which modern browsers block on https://.
  • CORS + proxy reliance: API calls are routed via PHP proxies; security + reliability needs care.

Quick local hosting (FastAPI replacement)

The legacy PHP proxy has been replaced by a small FastAPI app that also serves the static site.

cd /home/lucky/.openclaw/workspace/wikipedia3d
python3 -m venv .venv
source .venv/bin/activate
pip install -r server/requirements.txt
uvicorn server.app:app --reload --port 8088

Open:

⚠️ For best results run over HTTP, not HTTPS, because the code uses legacy HTTP endpoints.

What changed

  • server/app.py implements /proxy (replacement for ba-simple-proxy.php).
  • wikipedia3d/index.html and /index.html are static HTML replacements for the old PHP pages.
  • Proxy + icon URLs now point to relative paths to work locally.

Outlook: modernizing while keeping the soul

Goal: Preserve the core experience (3D exploration + semantic discovery + map-driven expansion) while upgrading to a modern, maintainable stack.

Phase 1 — Stabilize (lowest effort, highest payoff)

  • Replace hard-coded URLs with relative paths.
  • Add .env or config file for API endpoints/keys (Google Maps, GeoNames).
  • Move inline scripts to files; reduce global pollution.
  • Add a tiny local dev server script (Node or PHP).

Phase 2 — Modern frontend

  • Upgrade to a current Three.js and refactor rendering to ES modules.
  • Replace MooTools and legacy jQuery usage with vanilla JS or a minimal modern library.
  • Use fetch() + async/await instead of jQuery AJAX.
  • Replace the deprecated Google Maps bits (Panoramio) with Maps JS API + Places/StreetView or Mapbox.

Phase 3 — Data + semantics refresh

  • Migrate from DBpedia-only to Wikidata SPARQL as primary, keep DBpedia as fallback.
  • Replace AlchemyAPI (dead) with modern entity extraction or just remove it.
  • Add caching and rate limiting in the proxy.

Phase 4 — Experience upgrade (keep the magic)

  • Improved camera controls (orbit + FPS toggle).
  • Smooth item layout + collision avoidance.
  • Mini-map + bookmarks + “topic trails” visualization.
  • Optional VR/WebXR mode while retaining keyboard-first navigation.

Key dependencies (legacy)

  • jQuery 1.6.2, jQuery UI 1.8
  • MooTools 1.3
  • Three.js (very old build)
  • Google Maps JS API (panoramio library deprecated)
  • DBpedia SPARQL, Wikipedia API, GeoNames
  • PHP proxy scripts (ba-simple-proxy.php)

Next steps (suggested)

  1. Confirm the app runs locally with the PHP server.
  2. Apply the URL fixes above.
  3. Decide on a modern map provider (Google Maps w/ key vs Mapbox).
  4. I can then create a clean “modernization branch” with ES modules + updated Three.js while preserving the UI flow.

If you want, I can start a staged refactor plan and implement Phase 1 and Phase 2 step-by-step.