1
0
Fork 0
mirror of https://github.com/foone/3DMMForever synced 2025-12-06 11:16:12 -05:00
No description
Find a file
Frank Weindel a8a408510f
Merge pull request #55 from benstone/remove-debug-message-boxes
Replace message boxes on debug build startup with debug prints
2023-10-08 21:57:13 -04:00
.github/workflows Update build.yml 2022-11-11 18:31:08 +01:00
.notes commit message 2022-05-03 16:31:19 -07:00
.vscode commit message 2022-05-03 16:31:19 -07:00
audioman Apply bruxisma's suggestions 2022-06-20 18:30:14 -07:00
bren Lowercase most files and folders 2023-04-03 22:27:02 -04:00
cmake Lower-case file paths in some files 2023-04-03 22:27:03 -04:00
content-files Clean up cd folders / remove SETUP 2022-12-13 23:27:23 -05:00
elib Lowercase most files and folders 2023-04-03 22:27:02 -04:00
img Lowercase most files and folders 2023-04-03 22:27:02 -04:00
inc Search current working directory for Microsoft Kids to ease debugging 2022-06-20 18:25:31 -07:00
kauai Lowercase most files and folders 2023-04-03 22:27:02 -04:00
src Merge pull request #55 from benstone/remove-debug-message-boxes 2023-10-08 21:57:13 -04:00
tools Lowercase most files and folders 2023-04-03 22:27:02 -04:00
.clang-format cmake-format with Microsoft rules 2022-06-12 02:00:35 -04:00
.gitattributes 🍱 Add .gitattributes for some future binary files 2022-05-18 17:27:25 -07:00
.gitignore Lower-case file paths in some files 2023-04-03 22:27:03 -04:00
CMakeLists.txt Apply bruxisma's suggestions 2022-06-20 18:30:14 -07:00
CMakePresets.json Added RelWithDebInfo and MinSizeRel configurations to CMakePresets 2022-06-05 23:34:43 +10:00
CODE_OF_CONDUCT.md commit message 2022-05-03 16:31:19 -07:00
docker-compose.yaml Add Dockerfile to compile 3DMMForever in a docker container 2022-06-08 17:56:51 +02:00
Dockerfile Add Dockerfile to compile 3DMMForever in a docker container 2022-06-08 17:56:51 +02:00
FILETREE.TXT commit message 2022-05-03 16:31:19 -07:00
FONTS.md commit message 2022-05-03 16:31:19 -07:00
LICENSE commit message 2022-05-03 16:31:19 -07:00
makefile Lowercase most files and folders 2023-04-03 22:27:02 -04:00
makefile.kmk Lowercase most files and folders 2023-04-03 22:27:02 -04:00
makefile.rul Lowercase most files and folders 2023-04-03 22:27:02 -04:00
NEWTRD.TXT commit message 2022-05-03 16:31:19 -07:00
README.md Update README.md 2023-04-04 16:33:12 -04:00
setvars.bat update setvars to not override BLD_TYPE_DIR 2022-05-08 14:21:09 +10:00
SUPPORT.md commit message 2022-05-03 16:31:19 -07:00
TRD.TXT Merge CD12 into root and remove CD12 directory 2022-05-15 21:22:33 -04:00
version.def Add zip creation to main makefile 2022-05-17 14:02:47 -07:00

3DMMForever

Making 3D Movie Maker accessible to all and preserving it for generations to come.

3D Movie Maker

Goals

Our mission is to create a version of the original 3D Movie Maker software with these goals in mind:

  • Includes the original feature set, 640x480 UI, kidspace, and graphics.
  • Builds with modern open source tools.
  • Runs on multiple additional platforms including MacOS and Linux.
  • Ensure movie files produced in 3DMMForever can play in the original 3DMM.
    • Reduced quality is OK.
  • Ensure movie files produced with the original 3DMM can playback in true form.
  • Integrates v3dmm.
  • Enhancements remain light and preserve backwards compatibility.
    • Heavier enhnacements will be reserved for 3DMMPlus.

About

Released by Microsoft in 1995, 3D Movie Maker (3DMM) is a creativity program originally designed for kids that allows users to create 3D animated movies through a simple user interface using a wide assortment of included scenes, 3D models, sounds and music. Users can place, animate and otherwise manipulate 3D models using simple mouse movements and drags. They can also record and import their own sound files. Finished movies can be saved and shared with others. The program also includes a "kidspace" in the form a movie theater that can be navigated around where a user can find movie making tutorials, and inspiration.

In May 2022, Microsoft released the original source code of 3DMM under the MIT license as open source. Which is how 3DMMForever became possible!

Build instructions

CMake 3.23 and Visual Studio 2022 are required.

To setup an environment quickly, one can install VCVars for powershell and use

$ pushvc (invoke-vcvars -TargetArch x86 -HostArch AMD64)

to enable the environment. (To remove the environment simply call popvc afterwards

As of right now it's only safe to target x86, which means using a cross compiler environment in conjunction with CMake. Using Ninja is an option via configure presets:

$ cmake --preset x86:msvc:debug
$ cmake --build build

This should generate the 3dmovie.exe file with little to no issue as long as your environment is setup correctly.

The CMake project does not currently setup a correct install, nor does it show files inside of visual studio correctly (This will be added later)

Known Issues

  • Compilation of SITOBREN.EXE is disabled
    • This requires the SoftImage SDK "DKIT" to compile

Contributing

3DMMForever and 3DMMPlus will not be possible without an enthusiastic open source developer community backing it.

We're working on a set of contribution guidelines that we will be using going forward.

3DMMPlus

3DMMPlus is a future fork of 3DMMForever that will be created when we've finished the porting work to MacOS and Linux. The sky will be the limit with 3DMMPlus! Our mission will be to create a heavily enhanced version of 3DMM that:

  • Has a flexible full color UI that looks great at modern resolutions.
  • Has a modern full color 3D renderer with lightning, shading, moveable camera, and more.
  • Produces a new enhanced file type.
  • Can import 3MM files and play them back as they were originally created.
  • Maintains a strong consideration for and familiarity with the original 3DMMs UI decisions and approach.

The following sections have been carried over from the original 3D Movie Maker GitHub repository released by Microsoft in May 2022.

Code cleanup

This code was restored from the Microsoft corporate archives and cleared for release.

  • Developer names and aliases were removed, with the exception of current employees who worked on the original release who consented to keeping their names in place
  • The archive consisted of several CDs, some of which were for alternate builds or products, and have been excluded
  • The code does not build with today's engineering tools, and is released as-is.

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

This repo includes a build from 1995 of BRender from Argonaut software. Approval to open source BRender as MIT was given in an email from Jez San, former CEO of Argonaut. Other versions of BRender exist at https://github.com/foone/BRender-v1.3.2 and https://github.com/foone/BRender-1997 Thanks to Jez and the whole BRender team for their hard work on this amazing engine. A full historical list of BRender contributors is available at https://github.com/foone/BRender-v1.3.2/blob/main/README.md

This repo does NOT include the SoftImage SDK "./DKIT" from 1992.

Jez also offered this interesting BRender anecdote in an email:

When Sam Littlewood designed BRender, he didnt write the code. And then document it.  
The way most things were built at the time.
First, he wrote the manual.  The full documentation
That served as the spec.  Then the coding started.