An SAPUI5 application for visualizing warehouse or factory floorplans in 3D using Three.js. Real-time asset location data helps improve operational visibility and space management.
Generated with SAP Fiori Application Generator. SAPUI5 version: 1.138.1 (Horizon Dark Theme, TypeScript)
- Display 3D floorplan objects (cubes, models)
- Toggle object visibility via UI controls
- Navigate camera view to specific objects
- Add or remove objects dynamically at runtime
- Manage scene objects in SAPUI5 JSON Model (
3jsobject) - Tabbed side panel for visibility toggles and navigation
- Node.js LTS and compatible NPM version
- SAP Fiori Tools (used for generating application scaffolding)
- A modern browser (Chrome, Firefox, Edge)
-
Clone the repository:
git clone https://github.com/lethucthanhtu/z_sap_btp_decp.git cd z_sap_btp_decp -
Install dependencies:
npm install
-
Run the app locally:
npm start
This opens the application in your default browser with live reloading.
z_sap_btp_decp/
│
├── webapp/
│ ├── controller/ → ThreeJS.controller.ts
│ ├── view/ → XML view files
│ ├── model/ → 3JSMs.json (scene object definitions)
│ ├── i18n → translations
│
├── ui5.yaml → UI5 project configuration
├── tsconfig.json → TypeScript config
├── .eslintrc / .prettierrc → Linting & formatting
└── package.json → NPM scripts and dependencies
- Loads default objects from
3JSMs.json - Sets up Three.js scene, camera, renderer, and OrbitControls
- Binds object list to UI model (
3jsobject) for controls in side panel
- Side panel “Toggle” tab displays a list of checkboxes (bound to 3jsobject model)
onToggleModelsets thevisibleflag on corresponding Three.js mesh
- “Go To” tab lists object buttons
onNavigateToObjectcenters camera view at the selected object’s position
- Click on canvas to place a cube (if Shift key is not pressed)
- Shift-click on a cube to remove it from both the scene and UI model
- Object Types: Add new asset types (e.g.
.obj,.fbx) beyond cubes or GLB models - UI Enhancements: Include fully searchable tables, grouping, or filtering
- Persistence: Export / import updated object lists back to
.jsonor backend storage - Deployment: Host the built app on SAP BTP, static web servers, or Vercel (configured via
vercel.json)
npm start: Run locally in development modenpm run build: Generate production artifactnpm run lint: Run ESLint to check code qualitynpm run test(if added): Execute unit or integration tests
- Generated with SAP Fiori tools: App Generator v1.18.3
- UI5:
sap_horizon_dark, TypeScript-based - Source architecture inspiration: SAP BTP + SAPUI5 + Three.js asset visualization (github.com, help.sap.com, learning.sap.com, github.com, community.sap.com)