3D
Jump to navigation
Jump to search
General
- https://en.wikipedia.org/wiki/3D_computer_graphics - graphics that use a three-dimensional representation of geometric data (often Cartesian) that is stored in the computer for the purposes of performing calculations and rendering 2D images. Such images may be stored for viewing later or displayed in real-time. 3D computer graphics rely on many of the same algorithms as 2D computer vector graphics in the wire-frame model and 2D computer raster graphics in the final rendered display. In computer graphics software, the distinction between 2D and 3D is occasionally blurred; 2D applications may use 3D techniques to achieve effects such as lighting, and 3D may use 2D rendering techniques.
- https://en.wikipedia.org/wiki/3D_modeling - the process of developing a mathematical representation of any surface of an object (either inanimate or living) in three dimensions via specialized software. The product is called a 3D model. Someone who works with 3D models may be referred to as a 3D artist. It can be displayed as a two-dimensional image through a process called 3D rendering or used in a computer simulation of physical phenomena. The model can also be physically created using 3D printing devices.
- https://en.wikipedia.org/wiki/3D_rendering - the 3D computer graphics process of automatically converting 3D wire frame models into 2D images on a computer. 3D renders may include photorealistic effects or non-photorealistic rendering.
Rendering software
POV-Ray
- POV-Ray - The Persistence of Vision Raytracer, a high-quality, Free Software tool for creating stunning three-dimensional graphics. The source code is available for those wanting to do their own ports.
Ptex
- Ptex - a texture mapping system developed by Walt Disney Animation Studios for production-quality rendering:
Aqsis
- Aqsis - a cross-platform photorealistic 3D rendering solution, adhering to the RenderMan interface standard defined by Pixar Animation Studios. The Aqsis project itself consists of a number of components, each useful in their own right, but contributing to the larger aims of the project as a whole. At this time, there are two such components: the aqsis rendering tools and the RIBMosaic exporter for Blender. Each component has its own area detailed below.
Kerkythea
- Kerkythea - a freeware software that can produce high quality renders without spending a cent on software licensing. Kerkythea is using physically accurate materials and lights, aiming for the best quality rendering in the most efficient timeframe, with target to simplify the task of quality rendering by providing the necessary tools to automate scene setup, such as staging using the GL real-time viewer, material editor, general/render settings, editors, etc., under a common interface.
Sunflow
- Sunflow - an open source rendering system for photo-realistic image synthesis. It is written in Java and built around a flexible ray tracing core and an extensible object-oriented design.
Grasshopper
- Grasshopper - graphical algorithm editor tightly integrated with Rhino’s 3-D modeling tools. Unlike RhinoScript, Grasshopper requires no knowledge of programming or scripting, but still allows designers to build form generators from the simple to the awe-inspiring.
Crystal Space 3D
- Crystal Space 3D - a mature, full-featured Software Development Kit (SDK) providing real-time 3D graphics for applications such as games and virtual reality. It is free (LGPL) and cross-platform (Windows, GNU/Linux, Mac OS X).
Irrlicht
- Irrlicht Engine - an open source high performance realtime 3D engine written in C++. It is completely cross-platform, using D3D, OpenGL and its own software renderers, and has all of the state-of-the-art features which can be found in commercial 3d engines. We've got a huge active community, and there are lots of projects in development that use the engine. You can find enhancements for Irrlicht all over the web, like alternative terrain renderers, portal renderers, exporters, world layers, tutorials, editors, language bindings for java, perl, ruby, basic, python, lua, and so on. And best of all: It's completely free.
OGRE
- OGRE - (Object-Oriented Graphics Rendering Engine) is a scene-oriented, flexible 3D engine written in C++ designed to make it easier and more intuitive for developers to produce applications utilising hardware-accelerated 3D graphics. The class library abstracts all the details of using the underlying system libraries like Direct3D and OpenGL and provides an interface based on world objects and other intuitive classes.
Mitsuba
- Mitsuba - research-oriented rendering system in the style of PBRT, from which it derives much inspiration. It is written in portable C++, implements unbiased as well as biased techniques, and contains heavy optimizations targeted towards current CPU architectures. Mitsuba is extremely modular: it consists of a small set of core libraries and over 100 different plugins that implement functionality ranging from materials and light sources to complete rendering algorithms.
Ephtracy
- Ephtracy - free lightweight 8-bit voxel art editor and interactive path tracing renderer, Windows/Mac [2]
VoxelShop
- VoxelShop - an extremely intuitive and powerful software for OSX, Windows and Linux to modify and create voxel objects. It was designed from the ground up in close collaboration with artists.
SpriteStack
- SpriteStack - a 3D pixelart editor based on sprite stacking technique [3]
Random dot stereogram raycaster
- https://github.com/ammonb/stereogram-raycaster - a real-time 3D engine (ray caster) that renders to single-image random-dot stereogram (the images made popular in the Magic Eye books). I wrote this because I was curious if the brain would be able to follow a stereogram in motion. Click on the screen and press 3 after the program starts to render in stereogram.
to sort
- https://github.com/tcoppex/sparkle - A modern particle engine running on GPU, using c++14 and OpenGL 4.4.
- https://github.com/kosua20/Rendu - a rendering engine designed for experimentation. The computer graphics academic and industrial litterature is full of interesting techniques and approaches than can be cumbersome to implement without some basic building blocks. This project aims to provide those building blocks, along with examples of interesting methods or papers. It also contains more general demo applications, such as a small snake game or a gamepad configurator.
- https://github.com/mratsim/trace-of-radiance - an implementation of Ray Tracing in One Weekend in the Nim programming language
- https://github.com/kondrak/dos3d - Software renderer for DOS (mode 13h)
Modelling and rendering
- Open Game Engine Exchange - Wikipedia - a text-based file format designed to facilitate the transfer of complex 3D scene data between applications such as modeling tools and game engines. The OpenGEX format is built upon the data structure concepts defined by the Open Data Description Language (OpenDDL), a generic language for the storage of arbitrary data in human-readable format. The OpenGEX file format is registered with the Internet Assigned Numbers Authority (IANA) as the model/vnd.opengex media type. The OpenGEX format is defined by the Open Game Engine Exchange Specification, which is available on the official website opengex.org.Export plugins that write the OpenGEX format are available for Autodesk Maya, 3D Studio Max, and Blender.
- https://en.wikipedia.org/wiki/GlTF - GL Transmission Format - a file format for 3D scenes and models using the JSON standard. It is described by its creators as the "JPEG of 3D." It is an API-neutral runtime asset delivery format developed by the Khronos Group 3D Formats Working Group and announced at HTML5DevConf 2016. The intention is that glTF be an efficient, interoperable asset delivery format that compresses the size of 3D scenes and minimizes runtime processing by applications using WebGL and other APIs. glTF also defines a common publishing format for 3D content tools and services.
- https://en.wikipedia.org/wiki/COLLADA - COLLAborative Design Activity is an interchange file format for interactive 3D applications. It is managed by the nonprofit technology consortium, the Khronos Group, and has been adopted by ISO as a publicly available specification, ISO/PAS 17506. COLLADA defines an open standard XML schema for exchanging digital assets among various graphics software applications that might otherwise store their assets in incompatible file formats. COLLADA documents that describe digital assets are XML files, usually identified with a .dae (digital asset exchange) filename extension.
Blender
- Blender - the free and open source 3D creation suite. It supports the entirety of the 3D pipeline—modeling, rigging, animation, simulation, rendering, compositing and motion tracking, even video editing and game creation.
- https://github.com/alabd14313/awesome-BGE - A collection of blender and blender game engine resources
- Blend Swap - Open Source 3D models by Blender users for Blender users. Come swap some blends with friends!
- https://github.com/alessandro-zomparelli/tissue - add-on for computational design
- https://github.com/tin2tin/audacity_tools_for_blender - Open Sound Strip, Sequence or Record in Audacity
Sweet Home 3D
- Sweet Home 3D - a free interior design application that helps you draw the plan of your house, arrange furniture on it and visit the results in 3D.
Render engines
Addons
Render farms
- Sheep it Render Farm - a free distributed renderfarm for Blender.
- Crowdrender - helps you build a free render farm using your own hardware. Whether you render using GPU or CPU, our network rendering add-on will help you render your scenes amazingly quick using multiple computers.
- Golem - a global, open source, decentralized supercomputer that anyone can access. It is made up of the combined power of users’ machines, from PCs to entire data centers.Golem is capable of computing a wide variety of tasks, from CGI rendering, through machine learning to scientific computing. Golem’s limitations are only defined by our developer community’s creativity. Golem creates a decentralized sharing economy of computing power and supplies software developers with a flexible, reliable and cheap source of computing power.
Unity
- Unity - features multiple tools that enable rapid editing and iteration in your development cycles, including Play mode for quick previews of your work in real-time. All-in-one editor: Available on Windows, Mac, and Linux, it includes a range of artist-friendly tools for designing immersive experiences and game worlds, as well as a strong suite of developer tools for implementing game logic and high-performance gameplay. 2D & 3D: Unity supports both 2D and 3D development with features and functionality for your specific needs across genres. AI pathfinding tools: Unity includes a navigation system that allows you to create NPCs that can intelligently move around the game world. The system uses navigation meshes that are created automatically from your Scene geometry, or even dynamic obstacles, to alter the navigation of the characters at runtime. Efficient workflows: Unity Prefabs, which are preconfigured Game Objects, provide you with efficient and flexible workflows that enable you to work confidently, without the worry of making time-consuming errors. User interfaces: Our built-in UI system allows you to create user interfaces fast and intuitively. Physics engines: Take advantage of Box2D, the new DOTS-based Physics system and NVIDIA PhysX support for highly realistic and high-performance gameplay. Custom tools: You can extend the Editor with whatever tools you need to match your team’s workflow. Create and add customized extensions or find what you need on our Asset Store, which features thousands of resources, tools and extensions to speed up your projects.
- https://github.com/teenageengineering/MidiJack - MIDI plugin for Unity
- https://github.com/rodrigodzf/Jack-Audio-For-Unity - enables multichannel audio routing between Unity3D and JackAudio. Simply import the compiled bundle/dll to your project.
- https://github.com/keijiro/Minis - MIDI Input for New Input System, is a Unity plugin that adds MIDI input device support to Unity's new Input System.
- https://github.com/keijiro/MidiAnimationTrack - a custom timeline/playables package that provides functionality to control object properties based on sequence data contained in a standard MIDI file (.mid file). This allows you to create musically synchronized animation using a DAW (digital audio workstation) that is easy to manage accurately synchronized timings compared to other non-musical timeline editors like Unity's one.
UE4
Unreal
- https://github.com/ArthurBarthur/ArthursAudioBPs - UE4 project with various examples of audio-related stuff like visualizers, generators etc.
Wings 3D
- Wings 3D - an advanced subdivision modeler that is both powerful and easy to use. Originally inspired by Nendo and Mirai from Izware, Wings 3D has been developed since 2001, when Björn Gustavsson (bjorng) and Dan Gudmundsson (dgud) first started the project. Richard Jones (optigon) maintained Wings and coded many new features between 2006 and 2011. Wings 3D is currently maintained by Dan and Richard with the help of the great community. Wings 3D offers a wide range of modeling tools, a customizable interface, support for lights and materials, and a built-in AutoUV mapping facility. There is no support in Wings for animation.
SketchUp
- SketchUp - friendly and forgiving 3D modeling software: we don’t sacrifice usability for the sake of functionality. Start by drawing lines and shapes. Push and pull surfaces to turn them into 3D forms. Stretch, copy, rotate and paint to make anything you like. Windows.
Web
VECTARY
- VECTARY - the free, online 3D modeling software
p3d.in
- p3d.in - sharing your 3D models online should be an enjoyable experience. p3d.in is simple, real-time and just works. Goodbye screenshots!
LambdaCube 3D
- LambdaCube 3D - Haskell-like purely functional domain specific language for programming the GPU (graphics processing unit). The purpose of LambdaCube 3D is to provide a platform and host language independent graphics API. It allows the programmer to define the rendering pipeline with a single language, which is compiled into shaders and CPU-side setup code. Other parts of the program (e.g. networking or application logic) can be implemented in Haskell, C++ or JavaScript. LambdaCube 3D can be used for desktop and mobile applications, either in standalone applications or in browsers too.
webglstudio.js
WebGL
- http://get.webgl.org - test
- GPU text rendering with vector textures · Will Dobbie - A bezier curve shader. Our shader will run for every pixel we need to output. Its goal is to figure out what fraction of the pixel is covered by the glyph and assign this to the pixel alpha value3. If the glyph only partially covers the pixel we will output an alpha value somewhere between 0 and 1 — this is what gives us smooth antialiasing. [11]
- stack.gl - an open software ecosystem for WebGL, built on top of browserify and npm. Inspired by the Unix philosophy, stackgl modules "do one thing, and do it well". It is easy to use parts of stackgl à la carte, and because it is written from the bottom up, you can always drill down a layer. Unlike many 3D engines, stackgl emphasizes writing shader code, and provides powerful tools like glslify which bring the modularity and productivity of npm to GLSL!
WebGLStudio.js
- WebGLStudio.js - 3D Development environment for the web. WebGLStudio.js is a platform to create interactive 3D scenes directly from the browser. It allows to edit the scene visually, code your behaviours, edit the shaders, and all directly from within the app. [12]
Clara.io
- Clara.io - a full-featured cloud-based 3D modeling, animation and rendering software tool that runs in your web browser. With Clara.io you can make complex 3D models, create beautiful photorealistic renderings, and share them without installing any software programs. This is the perfect Three.JS or Babylon.JS editor for creating and tweaking your Web game content.
deck.gl
- https://github.com/uber/deck.gl - WebGL2-powered, highly performant large-scale data visualization
Models
- Sketchfab - Your 3D content on web, mobile, AR, and VR.
Formats
.OBJ
- https://en.wikipedia.org/wiki/Wavefront_.obj_file - a geometry definition file format first developed by Wavefront Technologies for its Advanced Visualizer animation package. The file format is open and has been adopted by other 3D graphics application vendors.The OBJ file format is a simple data-format that represents 3D geometry alone — namely, the position of each vertex, the UV position of each texture coordinate vertex, vertex normals, and the faces that make each polygon defined as a list of vertices, and texture vertices. Vertices are stored in a counter-clockwise order by default, making explicit declaration of face normals unnecessary. OBJ coordinates have no units, but OBJ files can contain scale information in a human readable comment line.
to sort
- https://github.com/vyv/psn-cpp - An Open Protocol for On-Stage, Live 3D Position DataInitially developed as a means for VYV's Photon Media Server to internally communicate the position of freely-moving projection surfaces, PosiStageNet became an open standard through a close collaboration between VYV and MA Lighting, makers of the world-reknowned GrandMA2 lighting console.The result is a combined positioning and lighting system that allows for effects of an unparalleled scale, where large numbers of moving lights can precisely follow multiple performers on stage. The protocol’s applications do not stop at lighting – sound designers can use its data to accurately pan sound effects and music automatically according to the action on stage, and automation operators can obtain another level of feedback on the position of motor-driven stage elements – or even set targets. And that’s just the start; the applications of 3D stage positioning systems are only beginning to be explored.
- Dust3D - a cross-platform open-source modeling software. It helps you create a 3D watertight model in seconds. Use it to speed up your character modeling in game making, 3D printing, and so on. [17]
- https://github.com/cwant/tessagon - Tessellate your favorite 2D manifolds with triangles, hexagons, and other interesting patterns.
- https://github.com/Immersive-Foundation/IMM - an API-neutral runtime immersive media delivery format. IMM provides an efficient, extensible, interoperable format for the transmission and loading of immersive 3D and 2D animated content of mixed media types (geometry, pictures, 360 panoramas, stroke based paintings, etc).
CV
- https://github.com/keijiro/Rcam - Real time volumetric video capture for live visuals
Drone
- https://github.com/OpenDroneMap/ODM - an open source command line toolkit for processing aerial drone imagery. Typical drones use simple point-and-shoot cameras, so the images from drones, while from a different perspective, are similar to any pictures taken from point-and-shoot cameras, i.e. non-metric imagery. OpenDroneMap turns those simple images into three dimensional geographic data that can be used in combination with other geographic datasets. [18]
- https://github.com/OpenDroneMap/WebODM - A free, user-friendly, extendable application and API for drone image processing. Generate georeferenced maps, point clouds, elevation models and textured 3D models from aerial images. It uses ODM for processing.
Machine learning
- NeRF: Neural Radiance Fields - YouTube -
- NeRF: Neural Radiance Fields - Representing Scenes as Neural Radiance Fields for View Synthesis
VR
- https://github.com/letoram/safespaces - a 3D/VR desktop environment for the Arcan display server. To get the full use out of it, first make sure that you have an OpenHMD supported headset, a working Arcan installation along with the vrbridge tool all setup (see the main arcan repository for instructions and configuring and installing).
WebVR
- WebVR - Bringing Virtual Reality to the Web - an open specification that makes it possible to experience VR in your browser. The goal is to make it easier for everyone to get into VR experiences, no matter what device you have. You need two things to experience WebVR: a headset and a compatible browser. A JavaScript API for creating immersive 3D, Virtual Reality experiences in your browser. Works with the HTC VIVE, Oculus Rift, Samsung Gear VR, Google Daydream, and Google Cardboard.
- WebVR Rocks - Your guide to Virtual Reality in the browser
- https://github.com/processprocess/lazerGlazer_Viz - WebVR Psychedelia
AR / XR
Latk
- Lightning Artist Toolkit - provides a common file format and suite of tools that help you integrate hand-drawn XR animation into any project. Readable in any popular 3D graphics application and ready to use in real-world production scenarios, its goal is to make creation in 3D as expressive and intuitive as drawing in 2D.
- https://github.com/LightningArtist/latkpy - Read and write Latk files in Python.
ChatARKit
- https://github.com/trzy/ChatARKit - Using ChatGPT to create AR experiences with natural language.
NeRF
- https://github.com/awesome-NeRF/awesome-NeRF - A curated list of awesome neural radiance fields papers