Experiment439
An experiment in creating useful 3D visualizations using Apple's SceneKit. The visualizations are aimed at general data visualization, similiar to charts and graphs, and taking quite a bit of inspiration from D3.
Install / Use
/learn @heckj/Experiment439README
Experiment439
An experiment in creating useful 3D visualizations using Apple's SceneKit. The visualizations are aimed at general data visualization, similiar to charts and graphs, and taking quite a bit of inspiration from D3. The resulting SceneKit files are aimed at being animatable, dynamic, and interactive, depending on the visualization.
The experiment is partially about the visualizations, and partially to work out an effect API for a 3D visualization toolkit, inspired by D3 and other charting libraries (such as IOSCharts).
dev tooling dependencies
Xcode and a few helpers:
brew install swiftlint
brew install swiftformat
(using linters and formatters because I tend to be pretty inconsistent and appreciate the warnings)
Command Line Building & Testing
view all the settings:
xcodebuild -showBuildSettings
view the schemes and targets:
xcodebuild -list
view destinations:
xcodebuild -scheme Experiment439 -showdestinations
do a build:
xcodebuild -scheme Experiment439 -configuration Debug
xcodebuild -scheme Experiment439 -configuration Release
run the tests:
xcodebuild clean test -scheme Experiment439 | xcpretty --color
Related Reading
SceneKit tutorials:
-
https://developer.apple.com/documentation/scenekit/organizing_a_scene_with_nodes
-
https://code.tutsplus.com/tutorials/combining-the-power-of-spritekit-and-scenekit--cms-24049
-
https://code.tutsplus.com/tutorials/an-introduction-to-scenekit-user-interaction-animations-physics--cms-23877
-
https://code.tutsplus.com/tutorials/an-introduction-to-scenekit-fundamentals--cms-23847
-
https://www.raywenderlich.com/1260-scene-kit-tutorial-with-swift-part-2-nodes
-
https://github.com/rogerboesch/SceneKitTutorial
Viz Ideas
visualization ideas that I think I'd like to try and enable with these experiments (maybe creating a basic gallery):
-
1-dimensional plot
- (single axis) with color/size of resulting object representing something (capacity/util of a set of nodes)
-
2-dimensional plot
- classic time series data, single series - time as one axis, values at time the other
- "layered" 2-dimensional plots (mult time series data, for example sharing the same time axis)
-
3-dimensional plots
- a classic 2D plot layed out against a dimension of time
- a 2D time series plot folded up to provide a day-of-week against a year, or hour against a day aggregate view
- a 2D layout/structure repeated in layers showing progression in time (maybe set of services, connected to show relations, and laying out over time - showing most recent, and then past states at various time intervals)
- a full 3 dimensional plot (3 dimensions of data - but what?)
- x,y (map) location and count/value at that dimension?
Related Skills
node-connect
354.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
112.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
354.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
354.5kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
