RFD 1085 details: the module table, by group
React contexts
Path: src/context/
| Context | Role |
|---|---|
SceneContext.jsx |
Scene state and the loaded avatar |
Core3DContext.jsx |
Renderer, camera, and viewport state |
TaskContext.jsx |
Task list state for the Task Manager |
AccountContext.jsx |
Wallet account state |
AudioContext.jsx |
Audio graph and lip-sync input |
SoundContext.jsx |
Interface sound effects |
ViewContext.jsx |
Active page and view state |
LanguageContext.jsx |
Interface language |
Scene and rendering
Path: src/library/
| Module | Role |
|---|---|
sceneManager.js |
Three.js scene, camera, and render loop |
effectManager.js |
Post effects and transitions |
sharedHDRManager.js |
Shared environment lighting |
viewportLighting.js |
Viewport light and exposure state |
cameraFrameManager.js |
Camera framing for avatars |
vrmManager.js |
VRM load and unload |
sparkSplatManager.js |
Gaussian splat view, through Spark.js |
WebXR
Path: src/library/sceneManagerXr*.js
The XR code splits by concern, one concern per file: input, locomotion, teleport, grab, interaction, menus, axes, controller visuals, gamepad buttons, measure, mouse emulation, and the avatar view. RFD 1010 (weftspun-3d-studio’s own decisions/) gives the WebXR design.
Avatar and traits
| Module | Role |
|---|---|
characterManager.js |
Avatar assembly and trait swap |
manifestDataManager.js |
Manifest load and trait lookup |
animationManager.js |
Animation load and playback |
blinkManager.js |
Eye blink timing |
lookatManager.js |
Head and eye aim |
EmotionManager.js |
Expression state |
assetManager.js |
Asset fetch and cache |
RFD 1005 records the avatar and VRM pipeline.
Export and generation
| Module | Role |
|---|---|
screenshotManager.js |
Viewport capture |
thumbnailsGenerator.js |
Trait thumbnail sheets |
spriteAtlasGenerator.js |
Sprite atlas output |
loraDataGenerator.js |
LoRA training image sets |
OverlayTextureManager.js |
Texture overlay composition |
zipManager.js |
Archive output |
VRMExporter.js |
VRM write |
Tasks
| Module | Role |
|---|---|
taskManager.js |
Job submit and poll, against 3DAIGC-API |
taskPersistence.js |
Task storage in the browser |
aiModelsCatalog.js |
Task types and model names |
RFD 1003 records the job lifecycle. RFD 1004 records the task catalog.
Wallet and payments
| Module | Role |
|---|---|
solanaManager.js |
Solana wallet calls |
baseX402Manager.js |
Base chain x402 calls |
thirdwebX402Manager.js |
Thirdweb x402 calls |
vanaDataManager.js |
Vana data calls |
mint-utils.js |
Mint helpers |
RFD 1012 records the wallet decision. That RFD’s own state is abandoned.
Hardware bridges
| Module | Role |
|---|---|
mbientLabsManager.js |
MbientLab sensor input |
tapStrapManager.js |
Tap Strap input |
nativeFaceBridge.js |
Android face-bridge interface |
nativeFaceRelay.js |
Face data relay to the browser |
Pages
Path: src/pages/
Each page file holds one route. src/App.jsx maps the routes. RFD 1001 records the app shell and the routing.