3Dēx is a 3D services and asset marketplace where clients can hire 3D artists and purchase 3D assets, featuring real-time previews rendered in the browser.
This repository contains both the frontend and backend for the platform.
- Features
- Actors & Business Model
- Tech Stack
- Project Structure
- Getting Started
- Contributor Guidelines
- License
- Primary Contributors
- Authentication & Authorization (Secure JWT + Role-based Access)
- Interactive 3D Services Marketplace (Providers & Print Services)
- Digital Asset Marketplace (Models, Textures, HDRIs) with Advanced Search
- Community Feed & Interactions (Posts, Likes, Comments)
- Content Moderation & NSFW Filtering (Blurring, Content Flags, Admin Approvals)
- Unified Library Hub (Consolidated Saved, Downloads, and My Uploads)
- Artist & Provider Analytics Dashboards
- Secure File Storage (MinIO/S3 Presigned URLs)
- Client-Side 3D Previews (Optimized interactive canvas)
- Order Management & Payment Integration (Midtrans Sandbox / Production)
- AI-Powered Discovery (Dēxie AI):
- Semantic Search: Natural language model discovery using
pgvectorandMiniLMembeddings. - Contextual Assistant: Situation-aware taglines using Google Gemini.
- Smart Recommendations: Personalised "Dēxie's Picks" based on user history.
- Semantic Search: Natural language model discovery using
3Dēx operates as a multi-sided marketplace, connecting creators, consumers, and physical manufacturers into a single unified ecosystem.
- Guest: Unregistered user browsing the catalog and interacting with the 3D viewer.
- Customer: Authenticated user capable of purchasing digital downloads, requesting physical prints, and participating in the social feed.
- Artist: Content creator who uploads 3D models and sets dual pricing (Personal vs. Commercial licenses).
- Provider: Verified hardware partner capable of fulfilling specialized physical 3D print orders via localized manufacturing.
- Admin: Platform maintainer responsible for content moderation, dispute resolution, and trust & safety.
The platform bridges the gap between digital artists and hobbyists without hardware, monetizing through a combination of direct sales and print-on-demand fulfillment.
graph LR
%% Define Styles
classDef artist fill:#3b82f6,stroke:#1d4ed8,stroke-width:2px,color:white;
classDef customer fill:#10b981,stroke:#047857,stroke-width:2px,color:white;
classDef provider fill:#f59e0b,stroke:#b45309,stroke-width:2px,color:white;
classDef platform fill:#8b5cf6,stroke:#5b21b6,stroke-width:2px,color:white;
classDef database fill:#1f2937,stroke:#111827,stroke-width:2px,color:white;
classDef money fill:#ecfccb,stroke:#84cc16,stroke-width:2px,color:#3f6212,stroke-dasharray: 5 5;
%% Nodes
A[Artist]:::artist
C[Customer]:::customer
P[Print Provider]:::provider
DB[(3D Catalog)]:::database
Mid[Payment Gateway]:::platform
Rev{Split Engine}:::money
Treasury[Platform Treasury]:::platform
%% Core Interactions
A --->|Uploads| DB
DB --->|Browses| C
C --->|1. Digital Order| Mid
C --->|2. Print Order| Mid
%% Fulfillment Paths
Mid -.->|Digital Unlock| D[Encrypted URL]:::database
D -.->|Downloads| C
Mid -.->|Print Job Assigned| P
P -.->|Ships Item| C
%% Financial Splits
Mid ===>|Gross Processing| Rev
Rev ===>|Digital: 85%| A
Rev ===>|Print: 10% Royalty| A
Rev ===>|Print: 75% Labor| P
Rev ===>|12% Platform Fee| Treasury
Rev ===>|~3% Tax/Gateway Fee| Treasury
To ensure a fair and sustainable ecosystem, revenue is automatically routed and split upon a successful transaction:
- Digital Sales Split:
- 85% - Artist Payout.
- 12% - Platform Operations Fee (maintenance, hosting, AI costs).
- ~3% - Payment Gateway Fee & Taxes (Midtrans processing + standard VAT).
- Physical Print Split:
- 75% - Provider Payout (covers 3D printing material, electricity, and labor).
- 10% - Artist Royalty (for licensing the 3D model for physical reproduction).
- 12% - Platform Operations Fee.
- ~3% - Payment Gateway Fee & Taxes.
- Frontend: Next.js, React, React Query, Tailwind CSS
- Backend: Node.js, Express
- Database: PostgreSQL with pgvector extension
- ORM: Prisma
- Storage: MinIO (S3 Compatible)
- AI Ecosystem: Google Gemini & Transformers.js (MiniLM)
- Version Control: Git & GitHub
3Dex/
├─ .github/ # GitHub Actions workflows
├─ .vscode/ # Editor settings
├─ apps/
│ ├─ backend/ # Express + Prisma backend
│ └─ frontend/ # Next.js frontend
├─ docs/ # Project documentation
├─ docker-compose.yml # Docker configuration
├─ ecosystem.config.js # PM2 configuration
├─ LICENSE # Project license
├─ package.json # Workspace dependencies
└─ README.md # Primary documentation
Refer to the following guide for initial setup and development:
dev.md — complete setup, installation, Git workflow, and troubleshooting.
For further architectural references, see the Documentation Index.
We welcome contributions! Please see our Contributing Guide for details on our branching strategy and code philosophy. Also, please review our Code of Conduct.
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).
You are free to use, study, modify, and distribute this software under the terms of the AGPL-3.0.
Any distributed modifications (including those offered over a network) must also be licensed under AGPL-3.0 and made available as open source.
See the LICENSE file for full details.
- I Nyoman Widiyasa Jayananda "Schryzon" (Backend, SysAdmin, Project Manager)
- I Kadek Mahesa Permana Putra "Vuxyn" (Frontend, UI/UX, QA)
- Thoriq Abdillah Falian Kusuma "ganijack" (Frontend, Integration, OAuth)
- Ni Putu Ayu Dian Sulastri (Documentation, Proposal, Competition Assistant)
- Mataram Dev community (Hosting, Support)
