NeRF-or-Nothing is a full-stack application that allows users to create and interact with 3D scenes using Neural Radiance Fields (NeRF) technology. The frontend implementation provides features such as user authentication, video upload, scene processing, and 3D scene visualization.
- Installation
- Project Structure
- Key Features
- Technology Stack
- Development Workflow
- Contributing
- Testing
- Deployment
- Additional Resources
To set up the project locally, follow these steps:
-
Ensure that you have a Node.js package manager installed
-
Clone the repository:
git clone https://github.com/NeRF-or-Nothing/frontend.git cd frontend
-
Install dependencies:
npm install
or
yarn install
-
Set up environment variables: Create a
.env
file in the root directory and add the following:BACKEND_URL=http://localhost:5000
Adjust the URL as needed for your backend server.
-
Start the development server:
npm run dev
or
yarn dev
-
Open your browser and navigate to
http://localhost:5173
(or the port specified by Vite).
The project follows a component-based architecture. Key directories include:
/src
: Source code for the application/Components
: React components/Context
: React context providers/Fetch
: API call functions/Types
: TypeScript type definitions/Util
: Utility functions and constants
- User authentication (signup, login, logout)
- Video upload for 3D scene creation
- Scene processing with various output types (e.g., splat cloud, point cloud)
- Live processing process
- 3D scene visualization using Three.js
- Scene history and management
- React
- TypeScript
- Vite
- Mantine UI
- Three.js
- React Three Fiber
- Create a new branch for your feature or bug fix.
- Implement your changes, following the project's coding standards.
- Write or update tests as necessary.
- Run tests and ensure all pass.
- Submit a pull request for review.
We welcome contributions to NeRF-or-Nothing! Please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Make your changes and commit them with clear, descriptive messages.
- Push your changes to your fork.
- Submit a pull request to the main repository.
Please ensure your code adheres to the project's coding standards and includes appropriate tests.
Run tests using the following command:
npm test
Ensure all tests pass before submitting a pull request.
Deployment instructions are available in the Deployment Guide in the project wiki.
For more detailed information about the project, please refer to the following wiki pages:
- Wiki Home
- Architecture Overview
- Component Guide
- State Management
- API Integration
- Authentication
- Routing
- Styling and Theming
- Testing and Quality Assurance
- Deployment Guide
- Compressed Gaussian Splatting Vertext and Fragment Shaders From AntiMatter15