├── .gitignore ├── LICENSE ├── README.md ├── doom-fire.gif └── playground ├── 1st-implementation-with-tables-manual-color-changer ├── Fire.js └── index.html ├── 1st-implementation-with-tables-manual-variable-wind ├── fire.js └── index.html ├── 1st-implementation-with-tables-pinkedition ├── README.md ├── doom-pinkedition.PNG ├── fire.js └── index.html ├── 1st-implementation-with-tables-randomic-variable-wind ├── fire.js └── index.html ├── 1st-implementation-with-tables-upside-down ├── README.md ├── fire.js └── index.html ├── 1st-implementation-with-tables ├── README.md ├── fire.js └── index.html ├── BashDoomFire └── doomfire.sh ├── Dart-Doom-Fire ├── README.md ├── fire.dart ├── fire.dart.js ├── fire.dart.js.deps ├── fire.dart.js.map └── index.html ├── SwiftUI-DoomFire ├── DoomFire.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ ├── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ │ └── xcuserdata │ │ │ └── adriano.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── adriano.xcuserdatad │ │ └── xcschemes │ │ └── xcschememanagement.plist ├── DoomFire │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── color-doom-logo.imageset │ │ │ ├── Contents.json │ │ │ └── color-doom-logo.jpg │ │ ├── doom-black-logo.imageset │ │ │ ├── Contents.json │ │ │ └── doom-black.jpg │ │ ├── doom-icon.dataset │ │ │ ├── Contents.json │ │ │ └── doom-logo.ico │ │ └── doom-logo.imageset │ │ │ ├── Contents.json │ │ │ └── doom-logo.jpg │ ├── DoomFireApp.swift │ ├── Preview Content │ │ └── Preview Assets.xcassets │ │ │ └── Contents.json │ ├── Views │ │ ├── ContentView.swift │ │ └── FireGridView.swift │ ├── Workers │ │ ├── ColorManager.swift │ │ ├── ColorValue.swift │ │ ├── Extensions.swift │ │ └── FireLogic.swift │ └── colors.json └── README.md ├── allegro5-c-fire ├── .gitignore ├── build.sh ├── main.c └── main.h ├── android-customview-kotlin-implementation ├── DoomFlames.iml ├── Readme.md ├── android-customview-kotlin-implementation.iml ├── app │ ├── .gitignore │ ├── app.iml │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── example │ │ │ └── leonardo │ │ │ └── doomflames │ │ │ └── ExampleInstrumentedTest.kt │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── leonardo │ │ │ │ └── doomflames │ │ │ │ ├── FlamesActivity.kt │ │ │ │ └── custom │ │ │ │ └── DoomFlamesWidget.kt │ │ └── res │ │ │ ├── drawable-v24 │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── drawable │ │ │ └── ic_launcher_background.xml │ │ │ ├── layout │ │ │ └── activity_flames.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ └── values │ │ │ ├── attrs.xml │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── example │ │ └── leonardo │ │ └── doomflames │ │ └── ExampleUnitTest.kt ├── build.gradle ├── example.gif ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── local.properties └── settings.gradle ├── android-implementation-kotlin ├── .gitignore ├── .idea │ ├── codeStyles │ │ ├── Project.xml │ │ └── codeStyleConfig.xml │ ├── encodings.xml │ ├── gradle.xml │ ├── misc.xml │ └── runConfigurations.xml ├── README.md ├── app │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── br │ │ │ └── com │ │ │ └── kassianoresende │ │ │ └── doomfire │ │ │ └── ExampleInstrumentedTest.kt │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── br │ │ │ │ └── com │ │ │ │ └── kassianoresende │ │ │ │ └── doomfire │ │ │ │ └── MainActivity.kt │ │ └── res │ │ │ ├── drawable-v24 │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── drawable │ │ │ └── ic_launcher_background.xml │ │ │ ├── layout │ │ │ └── activity_main.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── test │ │ └── java │ │ └── br │ │ └── com │ │ └── kassianoresende │ │ └── doomfire │ │ └── ExampleUnitTest.kt ├── build.gradle ├── fire.gif ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle ├── burning-elements ├── README.md ├── burnControl.js ├── burnElement.css └── index.html ├── c#-unity-3d ├── Assets │ ├── Material.meta │ ├── Material │ │ ├── Material Plane.mat │ │ └── Material Plane.mat.meta │ ├── Scenes.meta │ ├── Scenes │ │ ├── SimpleFire.unity │ │ └── SimpleFire.unity.meta │ ├── Scripts.meta │ └── Scripts │ │ ├── CameraController.cs │ │ ├── CameraController.cs.meta │ │ ├── ParticleSystemController.cs │ │ ├── ParticleSystemController.cs.meta │ │ ├── PlayerController.cs │ │ ├── PlayerController.cs.meta │ │ ├── UICanvas.cs │ │ └── UICanvas.cs.meta ├── Packages │ └── manifest.json ├── ProjectSettings │ ├── AudioManager.asset │ ├── ClusterInputManager.asset │ ├── DynamicsManager.asset │ ├── EditorBuildSettings.asset │ ├── EditorSettings.asset │ ├── GraphicsSettings.asset │ ├── InputManager.asset │ ├── NavMeshAreas.asset │ ├── NetworkManager.asset │ ├── Physics2DSettings.asset │ ├── PresetManager.asset │ ├── ProjectSettings.asset │ ├── ProjectVersion.txt │ ├── QualitySettings.asset │ ├── TagManager.asset │ ├── TimeManager.asset │ ├── UnityConnectSettings.asset │ └── VFXManager.asset ├── fire.JPG └── readme.md ├── controllers-rgb-and-scale-in-pure-javascript ├── fire.js └── index.html ├── cpp-qt-implementation ├── README.md ├── doomfire.cpp ├── doomfire.h ├── fire.pro ├── firewidget.cpp ├── firewidget.h ├── img │ └── fire_qt_mac.jpg ├── main.cpp ├── mainwindow.cpp ├── mainwindow.h └── mainwindow.ui ├── cpp-sfml-implementation ├── .gitattributes ├── CMakeLists.txt ├── README.md ├── cmake_modules │ └── FindSFML.cmake ├── include │ └── Fire.h ├── main.cpp └── src │ └── Fire.cpp ├── csharp-console-implementation ├── .gitignore ├── .vscode │ ├── launch.json │ └── tasks.json ├── LICENSE ├── Program.cs ├── README.md ├── assets │ └── doom-fire-algo2.gif ├── csharp-console-implementation.csproj └── csharp-console-implementation.sln ├── css-grid-doom-fire ├── README.md ├── doom-fire.gif ├── fire.js └── index.html ├── delphi-fmx ├── .gitignore ├── DoomFire.dpr ├── DoomFire.dproj ├── DoomFire.res ├── DoomFire.skincfg ├── DoomFireClass.pas ├── Main.fmx ├── Main.pas └── demo.png ├── doom-fire-algorithm-ascii-art ├── README.md ├── index.js └── package.json ├── doom-fire-algorithm-commented ├── README.md ├── fire.js └── index.html ├── doom-fire-algorithm-ios-spritekit ├── .gitignore ├── DoomFire.xcodeproj │ ├── project.pbxproj │ └── xcshareddata │ │ └── xcschemes │ │ └── DoomFire.xcscheme ├── DoomFire │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── DoomFire.swift │ ├── DoomPixelColor.swift │ ├── Info.plist │ ├── MainScene.swift │ └── ViewController.swift ├── LICENSE.md ├── README.md └── assets │ └── simulator.gif ├── doom-fire-algorithm-java ├── .classpath ├── .project ├── .settings │ └── org.eclipse.jdt.core.prefs ├── doom.gif └── src │ └── main │ └── Fire.java ├── doom-fire-js-canvas2d-typedarrays ├── Readme.md └── index.html ├── doom-fire-matrix-led-arduino ├── Fire.cpp ├── Fire.h └── doom-fire-matrix.ino ├── doom-fire-more-real ├── fire.js └── index.html ├── doom-fire-with-extinguish-fire-function ├── fire.css ├── fire.html └── fire.js ├── elixir-algorithm-render-in-terminal ├── .formatter.exs ├── .gitignore ├── README.md ├── config │ └── config.exs ├── elixir-doom-fire.gif ├── lib │ ├── doom_fire.ex │ ├── draw.ex │ ├── fire_state.ex │ └── utils.ex └── mix.exs ├── embedded_version-STM32F429-mbed ├── Doom_Flame-F429ZI_v02.DISCO_F429ZI.bin ├── README.md ├── doom-stm32f429.gif └── main.cpp ├── falling-stars ├── README.md ├── demo.gif ├── fire.js ├── index.html └── star.png ├── flutter-implementation ├── .gitignore ├── .metadata ├── README.md ├── android │ ├── .gitignore │ ├── app │ │ ├── build.gradle │ │ └── src │ │ │ ├── debug │ │ │ └── AndroidManifest.xml │ │ │ ├── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── kotlin │ │ │ │ └── com │ │ │ │ │ └── example │ │ │ │ │ └── flutter_doom_fire │ │ │ │ │ └── MainActivity.kt │ │ │ └── res │ │ │ │ ├── drawable │ │ │ │ └── launch_background.xml │ │ │ │ ├── mipmap-hdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-mdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ └── values │ │ │ │ └── styles.xml │ │ │ └── profile │ │ │ └── AndroidManifest.xml │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ └── gradle-wrapper.properties │ └── settings.gradle ├── ios │ ├── .gitignore │ ├── Flutter │ │ ├── AppFrameworkInfo.plist │ │ ├── Debug.xcconfig │ │ └── Release.xcconfig │ ├── Runner.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ └── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ └── Runner.xcscheme │ ├── Runner.xcworkspace │ │ └── contents.xcworkspacedata │ └── Runner │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── Icon-App-1024x1024@1x.png │ │ │ ├── Icon-App-20x20@1x.png │ │ │ ├── Icon-App-20x20@2x.png │ │ │ ├── Icon-App-20x20@3x.png │ │ │ ├── Icon-App-29x29@1x.png │ │ │ ├── Icon-App-29x29@2x.png │ │ │ ├── Icon-App-29x29@3x.png │ │ │ ├── Icon-App-40x40@1x.png │ │ │ ├── Icon-App-40x40@2x.png │ │ │ ├── Icon-App-40x40@3x.png │ │ │ ├── Icon-App-60x60@2x.png │ │ │ ├── Icon-App-60x60@3x.png │ │ │ ├── Icon-App-76x76@1x.png │ │ │ ├── Icon-App-76x76@2x.png │ │ │ └── Icon-App-83.5x83.5@2x.png │ │ └── LaunchImage.imageset │ │ │ ├── Contents.json │ │ │ ├── LaunchImage.png │ │ │ ├── LaunchImage@2x.png │ │ │ ├── LaunchImage@3x.png │ │ │ └── README.md │ │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ │ ├── Info.plist │ │ └── Runner-Bridging-Header.h ├── lib │ └── main.dart ├── pubspec.lock └── pubspec.yaml ├── flutter_fire ├── .flutter-plugins-dependencies ├── .gitignore ├── .metadata ├── README.md ├── android │ ├── app │ │ ├── build.gradle │ │ └── src │ │ │ ├── debug │ │ │ └── AndroidManifest.xml │ │ │ ├── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── kotlin │ │ │ │ └── com │ │ │ │ │ └── example │ │ │ │ │ └── flutter_fire │ │ │ │ │ └── MainActivity.kt │ │ │ └── res │ │ │ │ ├── drawable │ │ │ │ └── launch_background.xml │ │ │ │ ├── mipmap-hdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-mdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ └── values │ │ │ │ └── styles.xml │ │ │ └── profile │ │ │ └── AndroidManifest.xml │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ └── gradle-wrapper.properties │ └── settings.gradle ├── example.gif ├── ios │ ├── Flutter │ │ ├── AppFrameworkInfo.plist │ │ ├── Debug.xcconfig │ │ └── Release.xcconfig │ ├── Podfile │ ├── Runner.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ └── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ └── Runner.xcscheme │ ├── Runner.xcworkspace │ │ └── contents.xcworkspacedata │ └── Runner │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── Icon-App-1024x1024@1x.png │ │ │ ├── Icon-App-20x20@1x.png │ │ │ ├── Icon-App-20x20@2x.png │ │ │ ├── Icon-App-20x20@3x.png │ │ │ ├── Icon-App-29x29@1x.png │ │ │ ├── Icon-App-29x29@2x.png │ │ │ ├── Icon-App-29x29@3x.png │ │ │ ├── Icon-App-40x40@1x.png │ │ │ ├── Icon-App-40x40@2x.png │ │ │ ├── Icon-App-40x40@3x.png │ │ │ ├── Icon-App-60x60@2x.png │ │ │ ├── Icon-App-60x60@3x.png │ │ │ ├── Icon-App-76x76@1x.png │ │ │ ├── Icon-App-76x76@2x.png │ │ │ └── Icon-App-83.5x83.5@2x.png │ │ └── LaunchImage.imageset │ │ │ ├── Contents.json │ │ │ ├── LaunchImage.png │ │ │ ├── LaunchImage@2x.png │ │ │ ├── LaunchImage@3x.png │ │ │ └── README.md │ │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ │ ├── Info.plist │ │ └── Runner-Bridging-Header.h ├── lib │ ├── color_pallete.dart │ ├── fire_painter.dart │ ├── fire_widget.dart │ └── main.dart ├── pubspec.lock └── pubspec.yaml ├── fogodoom-control-screen-resizing ├── FogoDoom.gif ├── README.md ├── index.html ├── js │ ├── Propagation.js │ ├── dom │ │ └── Elements.js │ ├── index.js │ └── renderFire.js └── style │ └── style.css ├── follow-mouse ├── README.md ├── demo.gif ├── fire.js ├── index.html └── star.png ├── gdscript-doom-fire ├── .import │ ├── icon.png-487276ed1e3a0c39cad0279d744ee560.md5 │ └── icon.png-487276ed1e3a0c39cad0279d744ee560.stex ├── Fire.gd ├── Fire.tscn ├── README.md ├── core │ ├── FireMap.gd │ └── Render.gd ├── default_env.tres ├── icon.png ├── icon.png.import └── project.godot ├── godot-shaders-doom-fire ├── .gitignore ├── DoomFire.tscn ├── Doom_Fire │ └── doom_fire.shader ├── default_env.tres ├── pal.png ├── project.godot └── readme.md ├── golang-ebiten ├── README.md └── main.go ├── implementation-with-canvas-manual-variable-dimension-and-power ├── README.md ├── fire.js ├── index.html ├── preview.gif └── style.css ├── java-graphics2d-implementation ├── README.md ├── pom.xml └── src │ └── main │ └── java │ └── doomfire │ ├── Main.java │ └── gui │ ├── FirePanel.java │ ├── MainWindow.java │ └── color │ └── ColorPalette.java ├── java-libgdx-implementation ├── README.md ├── pom.xml └── src │ └── main │ └── java │ └── doomfire │ ├── Main.java │ └── gui │ ├── DoomFire.java │ ├── MainWindow.java │ └── color │ └── ColorPalette.java ├── lua-love2d-implementation ├── DoomFire │ ├── colors.png │ ├── conf.lua │ └── main.lua └── README.MD ├── meteor ├── README.md ├── demo.gif ├── fire.js ├── index.html └── style.css ├── new-structure-with-parcel-bundler ├── .gitignore ├── README.md ├── demo │ ├── Cargo.cb4bfa5f.toml │ ├── doom_fire_algorithm_bg.918dd76b.wasm │ ├── index.html │ ├── main.07273f20.css │ ├── main.07273f20.map │ ├── main.6a38f7d7.js │ └── main.709cdfb9.map ├── package.json └── src │ ├── config.json │ ├── css │ └── main.css │ ├── engines │ ├── index.js │ ├── js │ │ ├── fire.js │ │ └── index.js │ └── rust │ │ ├── .gitignore │ │ ├── Cargo.toml │ │ ├── index.js │ │ └── src │ │ ├── color.rs │ │ └── lib.rs │ ├── index.html │ ├── main.js │ ├── renders │ ├── canvas.js │ ├── index.js │ ├── pixi.js │ ├── table-debug.js │ └── table.js │ └── scripts │ ├── colors.js │ └── handlers.js ├── non-uniform-canvas-2d-array-implementation ├── README.md ├── controls.js ├── doom.gif ├── fire-algorithm.js └── index.html ├── pagarme-logo-on-fire ├── README.md ├── fire.js └── index.html ├── psp-homebrew-oslib-implementation ├── README.MD ├── release │ └── EBOOT.PBP └── src │ ├── ICON0.PNG │ ├── main.c │ └── makefile ├── python3-doom-fire-curses └── doom-fire.py ├── python3-kivy ├── LICENSE ├── README.md ├── doom_fire.py ├── fire.gif └── requirements.txt ├── python3-pygame-implementation ├── README.md └── doom-fire │ └── doom_fire.py ├── pythonic-doom-fire ├── .gitignore ├── README.md ├── pythonic-doom-fire-blue.gif ├── pythonic-doom-fire.gif ├── pythonic-doom-fire │ ├── __init__.py │ ├── color_palette.py │ ├── doom_fire.py │ └── example │ │ ├── app.py │ │ └── doom_fire_pygame.py └── setup.py ├── random-walker ├── README.md ├── fire.js └── index.html ├── react-implementation ├── .gitignore ├── README.md ├── components_organization.PNG ├── package-lock.json ├── package.json ├── public │ ├── favicon.ico │ ├── index.html │ └── manifest.json └── src │ ├── components │ ├── App.css │ ├── App.js │ ├── ButtonContent.js │ ├── DoomTd.css │ ├── DoomTd.js │ └── DoomTr.js │ └── index.js ├── react-native-doom-fire ├── .buckconfig ├── .flowconfig ├── .gitattributes ├── .gitignore ├── .watchmanconfig ├── App.js ├── README.md ├── __tests__ │ └── App-test.js ├── android │ ├── app │ │ ├── BUCK │ │ ├── build.gradle │ │ ├── build_defs.bzl │ │ ├── proguard-rules.pro │ │ └── src │ │ │ ├── debug │ │ │ ├── AndroidManifest.xml │ │ │ └── res │ │ │ │ └── xml │ │ │ │ └── react_native_config.xml │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── com │ │ │ │ └── doomfire │ │ │ │ ├── MainActivity.java │ │ │ │ └── MainApplication.java │ │ │ └── res │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ └── values │ │ │ ├── strings.xml │ │ │ └── styles.xml │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── keystores │ │ ├── BUCK │ │ └── debug.keystore.properties │ └── settings.gradle ├── app.json ├── babel.config.js ├── index.js ├── ios │ ├── DoomFire-tvOS │ │ └── Info.plist │ ├── DoomFire-tvOSTests │ │ └── Info.plist │ ├── DoomFire.xcodeproj │ │ ├── project.pbxproj │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ ├── DoomFire-tvOS.xcscheme │ │ │ └── DoomFire.xcscheme │ ├── DoomFire │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Base.lproj │ │ │ └── LaunchScreen.xib │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ ├── Info.plist │ │ └── main.m │ └── DoomFireTests │ │ ├── DoomFireTests.m │ │ └── Info.plist ├── metro.config.js ├── package.json ├── preview.gif └── yarn.lock ├── render-canvas-responsive-layout ├── README.md ├── doom-fire.gif ├── fire.js ├── index.html └── style.css ├── render-using-gpu ├── README.md ├── doom-fire.gif ├── fire.js ├── gpu.js └── index.html ├── render-using-particles-with-p5 ├── FireCanvas.js ├── FireParticle.js ├── index.html ├── p5.dom.min.js ├── p5.min.js └── sketch.js ├── render-with-canvas-and-hsl-colors ├── README.md ├── demo.gif ├── fire.js └── index.html ├── render-with-canvas-draw-rect ├── README.md ├── fire.js └── index.html ├── render-with-canvas ├── README.md ├── fire.js └── index.html ├── render-with-pixijs ├── README.md ├── fire.js └── index.html ├── rust-algorithm-render-in-terminal ├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── README.md ├── demo-doom-fire.gif └── src │ ├── main.rs │ ├── palette.rs │ ├── state.rs │ └── utils.rs ├── sdl2-implementation ├── Makefile ├── README.MD └── main.cpp ├── subpixel-division-and-color-interpolation ├── README.md ├── index.html ├── main.css └── main.js ├── ta-pegando-fogo-bixo ├── README.md ├── assets │ ├── faustao.jpg │ └── fogo.mp3 ├── fire.js └── index.html ├── texts-on-fire ├── README.md ├── fire.js └── index.html ├── threejs-3d-cube ├── README.md ├── animation.gif └── index.html └── web-responsive-version ├── index.html └── script.js /doom-fire.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/doom-fire.gif -------------------------------------------------------------------------------- /playground/1st-implementation-with-tables-pinkedition/README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 | 4 | 5 |

6 | 7 | # Doom Fire Algorithm - Pink Edition 8 | This is a Pink Edition of Fire effect from Doom implemented in plain JavaScript and using a Table to render the final effect. 9 | 10 | - [Click here for the Pink Edition Demo page](https://filipedeschamps.com.br/doom-fire-algorithm/playground/1st-implementation-with-tables-pinkedition) 11 | - [Click here for the Original Video Tutorial](https://www.youtube.com/watch?v=HCjDjsHPOco) 12 | 13 | This project was inspired by [this article](http://fabiensanglard.net/doom_fire_psx/). 14 | 15 | ## Author 16 | 17 | | [
@valescaf](https://github.com/valescaf) | 18 | | :---: | 19 | -------------------------------------------------------------------------------- /playground/1st-implementation-with-tables-pinkedition/doom-pinkedition.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/1st-implementation-with-tables-pinkedition/doom-pinkedition.PNG -------------------------------------------------------------------------------- /playground/1st-implementation-with-tables-upside-down/README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 | 4 | 5 |

6 | 7 | # Doom Fire Algorithm 8 | Fire effect from Doom at the upside down implemented in plain JavaScript and using a Table to render the final effect. 9 | 10 | - [Click here for the Demo page](https://filipedeschamps.github.io/doom-fire-algorithm/playground/1st-implementation-with-tables-upside-down/) 11 | 12 | This project was inspired by [this article](http://fabiensanglard.net/doom_fire_psx/). 13 | 14 | ## Author 15 | 16 | | [
@filipedeschamps](https://github.com/filipedeschamps) | 17 | | :---: | 18 | -------------------------------------------------------------------------------- /playground/1st-implementation-with-tables/README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 | 4 | 5 |

6 | 7 | # Doom Fire Algorithm 8 | Fire effect from Doom implemented in plain JavaScript and using a Table to render the final effect. 9 | 10 | - [Click here for the Demo page](https://filipedeschamps.github.io/doom-fire-algorithm/playground/1st-implementation-with-tables/) 11 | - [Click here for the Video tutorial](https://www.youtube.com/watch?v=HCjDjsHPOco) 12 | 13 | This project was inspired by [this article](http://fabiensanglard.net/doom_fire_psx/). 14 | 15 | ## Author 16 | 17 | | [
@filipedeschamps](https://github.com/filipedeschamps) | 18 | | :---: | 19 | -------------------------------------------------------------------------------- /playground/Dart-Doom-Fire/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Doom-fire-Dart 3 | ### Simple verion of Doom fire using Dart 4 | 5 | ## Preview: https://vinisaab.github.io/ 6 | 7 | - [Click here for the Demo page](https://filipedeschamps.github.io/doom-fire-algorithm/playground/follow-mouse/) 8 | - [Click here for the Video tutorial](https://www.youtube.com/watch?v=HCjDjsHPOco) 9 | 10 | ## Author 11 | 12 | | [
@filipedeschamps](https://github.com/filipedeschamps) | 13 | | :---: | 14 | 15 | 16 | -------------------------------------------------------------------------------- /playground/Dart-Doom-Fire/fire.dart.js.deps: -------------------------------------------------------------------------------- 1 | file:///home/atom/Documentos/Carreira/Dart/Doom-fire-Dart/fire.dart 2 | file:///usr/lib/dart/lib/_internal/dart2js_platform.dill 3 | file:///usr/lib/dart/lib/dart_client.platform 4 | file:///usr/lib/dart/lib/libraries.json -------------------------------------------------------------------------------- /playground/SwiftUI-DoomFire/DoomFire.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /playground/SwiftUI-DoomFire/DoomFire.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /playground/SwiftUI-DoomFire/DoomFire.xcodeproj/project.xcworkspace/xcuserdata/adriano.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/SwiftUI-DoomFire/DoomFire.xcodeproj/project.xcworkspace/xcuserdata/adriano.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /playground/SwiftUI-DoomFire/DoomFire.xcodeproj/xcuserdata/adriano.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | DoomFire.xcscheme_^#shared#^_ 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /playground/SwiftUI-DoomFire/DoomFire/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /playground/SwiftUI-DoomFire/DoomFire/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /playground/SwiftUI-DoomFire/DoomFire/Assets.xcassets/color-doom-logo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "color-doom-logo.jpg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /playground/SwiftUI-DoomFire/DoomFire/Assets.xcassets/color-doom-logo.imageset/color-doom-logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/SwiftUI-DoomFire/DoomFire/Assets.xcassets/color-doom-logo.imageset/color-doom-logo.jpg -------------------------------------------------------------------------------- /playground/SwiftUI-DoomFire/DoomFire/Assets.xcassets/doom-black-logo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "doom-black.jpg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /playground/SwiftUI-DoomFire/DoomFire/Assets.xcassets/doom-black-logo.imageset/doom-black.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/SwiftUI-DoomFire/DoomFire/Assets.xcassets/doom-black-logo.imageset/doom-black.jpg -------------------------------------------------------------------------------- /playground/SwiftUI-DoomFire/DoomFire/Assets.xcassets/doom-icon.dataset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "data" : [ 3 | { 4 | "filename" : "doom-logo.ico", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /playground/SwiftUI-DoomFire/DoomFire/Assets.xcassets/doom-icon.dataset/doom-logo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/SwiftUI-DoomFire/DoomFire/Assets.xcassets/doom-icon.dataset/doom-logo.ico -------------------------------------------------------------------------------- /playground/SwiftUI-DoomFire/DoomFire/Assets.xcassets/doom-logo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "doom-logo.jpg", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /playground/SwiftUI-DoomFire/DoomFire/Assets.xcassets/doom-logo.imageset/doom-logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/SwiftUI-DoomFire/DoomFire/Assets.xcassets/doom-logo.imageset/doom-logo.jpg -------------------------------------------------------------------------------- /playground/SwiftUI-DoomFire/DoomFire/DoomFireApp.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DoomFireApp.swift 3 | // DoomFire 4 | // 5 | // Created by Adriano Rodrigues Vieira on 08/04/21. 6 | // 7 | 8 | import SwiftUI 9 | 10 | @main 11 | struct DoomFireApp: App { 12 | var body: some Scene { 13 | WindowGroup { 14 | ContentView() 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /playground/SwiftUI-DoomFire/DoomFire/Preview Content/Preview Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /playground/SwiftUI-DoomFire/DoomFire/Views/ContentView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ContentView.swift 3 | // DoomFire 4 | // 5 | // Created by Adriano Rodrigues Vieira on 08/04/21. 6 | // 7 | 8 | import SwiftUI 9 | 10 | struct ContentView: View { 11 | let width = 50 12 | let height = 50 13 | 14 | var body: some View { 15 | ZStack { 16 | Color.black 17 | .ignoresSafeArea() 18 | VStack { 19 | Image("color-doom-logo") 20 | .resizable() 21 | .frame(height: 180) 22 | .padding() 23 | 24 | FireGridView(width: width, height: height) 25 | } 26 | } 27 | 28 | } 29 | } 30 | 31 | struct ContentView_Previews: PreviewProvider { 32 | static var previews: some View { 33 | ContentView() 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /playground/SwiftUI-DoomFire/DoomFire/Workers/ColorManager.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ColorManager.swift 3 | // DoomFire 4 | // 5 | // Created by Adriano Rodrigues Vieira on 09/04/21. 6 | // 7 | 8 | import SwiftUI 9 | 10 | 11 | struct ColorManager { 12 | private var colors: [Color] = [] 13 | 14 | init() { 15 | let jsonColors: [ColorValue] = Bundle.main.decode("colors.json") 16 | 17 | for jsonColor in jsonColors { 18 | let color = Color(red: jsonColor.doubleRed, 19 | green: jsonColor.doubleGreen, 20 | blue: jsonColor.doubleBlue) 21 | 22 | self.colors.append(color) 23 | } 24 | } 25 | 26 | func getColor(ofIndex index: Int) -> Color { 27 | if index > colors.count { 28 | fatalError("There is no color with index \(index)") 29 | } 30 | return colors[index] 31 | } 32 | 33 | func getRandomColor() -> Color { 34 | return colors.randomElement() ?? Color(UIColor.magenta) 35 | } 36 | } 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /playground/SwiftUI-DoomFire/DoomFire/Workers/ColorValue.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ColorValue.swift 3 | // DoomFire 4 | // 5 | // Created by Adriano Rodrigues Vieira on 10/04/21. 6 | // 7 | 8 | import Foundation 9 | 10 | struct ColorValue: Codable { 11 | let r: Int 12 | let g: Int 13 | let b: Int 14 | 15 | var doubleRed: Double { 16 | get { 17 | return Double(r) / 255.0 18 | } 19 | } 20 | 21 | var doubleGreen: Double { 22 | get { 23 | return Double(g) / 255.0 24 | } 25 | } 26 | 27 | var doubleBlue: Double { 28 | get { 29 | return Double(g) / 255.0 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /playground/SwiftUI-DoomFire/DoomFire/Workers/Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Extensions.swift 3 | // DoomFire 4 | // 5 | // Created by Adriano Rodrigues Vieira on 10/04/21. 6 | // 7 | 8 | import Foundation 9 | 10 | extension Bundle { 11 | func decode(_ filename: String) -> T { 12 | guard let url = self.url(forResource: filename, withExtension: nil) else { 13 | fatalError("Failed to locate \(filename) in bundle.") 14 | } 15 | 16 | guard let data = try? Data(contentsOf: url) else { 17 | fatalError("Failed to load file \(filename) from bundle.") 18 | } 19 | 20 | let decoder = JSONDecoder() 21 | let formatter = DateFormatter() 22 | formatter.dateFormat = "y-MM-dd" 23 | decoder.dateDecodingStrategy = .formatted(formatter) 24 | 25 | guard let loaded = try? decoder.decode(T.self, from: data) else { 26 | fatalError("Failed to decode \(filename) from bundle.") 27 | } 28 | 29 | return loaded 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /playground/SwiftUI-DoomFire/DoomFire/colors.json: -------------------------------------------------------------------------------- 1 | 2 | [{"r":7,"g":7,"b":7},{"r":31,"g":7,"b":7},{"r":47,"g":15,"b":7},{"r":71,"g":15,"b":7},{"r":87,"g":23,"b":7},{"r":103,"g":31,"b":7},{"r":119,"g":31,"b":7},{"r":143,"g":39,"b":7},{"r":159,"g":47,"b":7},{"r":175,"g":63,"b":7},{"r":191,"g":71,"b":7},{"r":199,"g":71,"b":7},{"r":223,"g":79,"b":7},{"r":223,"g":87,"b":7},{"r":223,"g":87,"b":7},{"r":215,"g":95,"b":7},{"r":215,"g":95,"b":7},{"r":215,"g":103,"b":15},{"r":207,"g":111,"b":15},{"r":207,"g":119,"b":15},{"r":207,"g":127,"b":15},{"r":207,"g":135,"b":23},{"r":199,"g":135,"b":23},{"r":199,"g":143,"b":23},{"r":199,"g":151,"b":31},{"r":191,"g":159,"b":31},{"r":191,"g":159,"b":31},{"r":191,"g":167,"b":39},{"r":191,"g":167,"b":39},{"r":191,"g":175,"b":47},{"r":183,"g":175,"b":47},{"r":183,"g":183,"b":47},{"r":183,"g":183,"b":55},{"r":207,"g":207,"b":111},{"r":223,"g":223,"b":159},{"r":239,"g":239,"b":199},{"r":255,"g":255,"b":255}] 3 | -------------------------------------------------------------------------------- /playground/SwiftUI-DoomFire/README.md: -------------------------------------------------------------------------------- 1 | # Doom-Fire 2 | 3 | App in pure SwiftUI based on Filipe Deschamps (https://www.youtube.com/watch?v=fxm8cadCqbs) doom fire algorithm (in Javascript). 4 | 5 | (low frame rate because of SwiftUI's limitations). 6 | 7 |

8 | Doom Fire! 9 |

10 | -------------------------------------------------------------------------------- /playground/allegro5-c-fire/.gitignore: -------------------------------------------------------------------------------- 1 | main 2 | main.exe 3 | .ccls-cache* 4 | -------------------------------------------------------------------------------- /playground/allegro5-c-fire/build.sh: -------------------------------------------------------------------------------- 1 | gcc -Wall main.c -lallegro -lallegro_primitives -o main -g 2 | -------------------------------------------------------------------------------- /playground/android-customview-kotlin-implementation/DoomFlames.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /playground/android-customview-kotlin-implementation/Readme.md: -------------------------------------------------------------------------------- 1 |

2 | 3 | 4 | 5 |

6 | 7 | # Doom Fire Algorithm 8 | Fire effect from Doom implemented in Kotlin using custom view implementation for Android. 9 | 10 | - [Click here for the Demo page](https://filipedeschamps.github.io/doom-fire-algorithm/playground/android-customview-kotlin-implementation/) 11 | - [Click here for the Video tutorial](https://www.youtube.com/watch?v=HCjDjsHPOco) 12 | 13 | This project was inspired by [this article](http://fabiensanglard.net/doom_fire_psx/). 14 | 15 | ## Author 16 | 17 | | [
@alvesleonardo](https://github.com/alvesleonardo) | 18 | | :---: | 19 | -------------------------------------------------------------------------------- /playground/android-customview-kotlin-implementation/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /playground/android-customview-kotlin-implementation/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /playground/android-customview-kotlin-implementation/app/src/androidTest/java/com/example/leonardo/doomflames/ExampleInstrumentedTest.kt: -------------------------------------------------------------------------------- 1 | package com.example.leonardo.doomflames 2 | 3 | import android.support.test.InstrumentationRegistry 4 | import android.support.test.runner.AndroidJUnit4 5 | 6 | import org.junit.Test 7 | import org.junit.runner.RunWith 8 | 9 | import org.junit.Assert.* 10 | 11 | /** 12 | * Instrumented test, which will execute on an Android device. 13 | * 14 | * See [testing documentation](http://d.android.com/tools/testing). 15 | */ 16 | @RunWith(AndroidJUnit4::class) 17 | class ExampleInstrumentedTest { 18 | @Test 19 | fun useAppContext() { 20 | // Context of the app under test. 21 | val appContext = InstrumentationRegistry.getTargetContext() 22 | assertEquals("com.example.leonardo.doomflames", appContext.packageName) 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /playground/android-customview-kotlin-implementation/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /playground/android-customview-kotlin-implementation/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /playground/android-customview-kotlin-implementation/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /playground/android-customview-kotlin-implementation/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/android-customview-kotlin-implementation/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /playground/android-customview-kotlin-implementation/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/android-customview-kotlin-implementation/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /playground/android-customview-kotlin-implementation/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/android-customview-kotlin-implementation/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /playground/android-customview-kotlin-implementation/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/android-customview-kotlin-implementation/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /playground/android-customview-kotlin-implementation/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/android-customview-kotlin-implementation/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /playground/android-customview-kotlin-implementation/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/android-customview-kotlin-implementation/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /playground/android-customview-kotlin-implementation/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/android-customview-kotlin-implementation/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /playground/android-customview-kotlin-implementation/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/android-customview-kotlin-implementation/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /playground/android-customview-kotlin-implementation/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/android-customview-kotlin-implementation/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /playground/android-customview-kotlin-implementation/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/android-customview-kotlin-implementation/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /playground/android-customview-kotlin-implementation/app/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /playground/android-customview-kotlin-implementation/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #008577 4 | #00574B 5 | #D81B60 6 | #008577 7 | 8 | -------------------------------------------------------------------------------- /playground/android-customview-kotlin-implementation/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | DoomFlames 3 | 4 | -------------------------------------------------------------------------------- /playground/android-customview-kotlin-implementation/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /playground/android-customview-kotlin-implementation/app/src/test/java/com/example/leonardo/doomflames/ExampleUnitTest.kt: -------------------------------------------------------------------------------- 1 | package com.example.leonardo.doomflames 2 | 3 | import org.junit.Test 4 | 5 | import org.junit.Assert.* 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * See [testing documentation](http://d.android.com/tools/testing). 11 | */ 12 | class ExampleUnitTest { 13 | @Test 14 | fun addition_isCorrect() { 15 | assertEquals(4, 2 + 2) 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /playground/android-customview-kotlin-implementation/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | ext.kotlin_version = '1.3.20' 5 | repositories { 6 | google() 7 | jcenter() 8 | } 9 | dependencies { 10 | classpath 'com.android.tools.build:gradle:3.3.0' 11 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 12 | 13 | // NOTE: Do not place your application dependencies here; they belong 14 | // in the individual module build.gradle files 15 | } 16 | } 17 | 18 | allprojects { 19 | repositories { 20 | google() 21 | jcenter() 22 | } 23 | } 24 | 25 | task clean(type: Delete) { 26 | delete rootProject.buildDir 27 | } 28 | -------------------------------------------------------------------------------- /playground/android-customview-kotlin-implementation/example.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/android-customview-kotlin-implementation/example.gif -------------------------------------------------------------------------------- /playground/android-customview-kotlin-implementation/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | # IDE (e.g. Android Studio) users: 3 | # Gradle settings configured through the IDE *will override* 4 | # any settings specified in this file. 5 | # For more details on how to configure your build environment visit 6 | # http://www.gradle.org/docs/current/userguide/build_environment.html 7 | # Specifies the JVM arguments used for the daemon process. 8 | # The setting is particularly useful for tweaking memory settings. 9 | org.gradle.jvmargs=-Xmx1536m 10 | # When configured, Gradle will run in incubating parallel mode. 11 | # This option should only be used with decoupled projects. More details, visit 12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 13 | # org.gradle.parallel=true 14 | # Kotlin code style for this project: "official" or "obsolete": 15 | kotlin.code.style=official 16 | -------------------------------------------------------------------------------- /playground/android-customview-kotlin-implementation/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/android-customview-kotlin-implementation/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /playground/android-customview-kotlin-implementation/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Jan 26 22:41:11 BRST 2019 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip 7 | -------------------------------------------------------------------------------- /playground/android-customview-kotlin-implementation/local.properties: -------------------------------------------------------------------------------- 1 | ## This file is automatically generated by Android Studio. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file should *NOT* be checked into Version Control Systems, 5 | # as it contains information specific to your local configuration. 6 | # 7 | # Location of the SDK. This is only used by Gradle. 8 | # For customization when using a Version Control System, please read the 9 | # header note. 10 | sdk.dir=/home/leonardo/Android/Sdk -------------------------------------------------------------------------------- /playground/android-customview-kotlin-implementation/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /playground/android-implementation-kotlin/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/caches/build_file_checksums.ser 5 | /.idea/libraries 6 | /.idea/modules.xml 7 | /.idea/workspace.xml 8 | .DS_Store 9 | /build 10 | /captures 11 | .externalNativeBuild 12 | -------------------------------------------------------------------------------- /playground/android-implementation-kotlin/.idea/codeStyles/codeStyleConfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /playground/android-implementation-kotlin/.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /playground/android-implementation-kotlin/.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 18 | -------------------------------------------------------------------------------- /playground/android-implementation-kotlin/.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /playground/android-implementation-kotlin/README.md: -------------------------------------------------------------------------------- 1 | # Implementação do algotimo com Kotlin e Android 2 | 3 | 4 | 5 | 6 | Esta é uma implementação do algotimo mostrado pelo Felipe Deschamps no vídeo: https://www.youtube.com/watch?v=fxm8cadCqbs. 7 | 8 | O código foi todo implementado em Kotlin e também utilizei a lib Anko. 9 | 10 | 11 | ## Autor 12 | 13 | Kassiano Resende 14 | 15 | 16 | -------------------------------------------------------------------------------- /playground/android-implementation-kotlin/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /playground/android-implementation-kotlin/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /playground/android-implementation-kotlin/app/src/androidTest/java/br/com/kassianoresende/doomfire/ExampleInstrumentedTest.kt: -------------------------------------------------------------------------------- 1 | package br.com.kassianoresende.doomfire 2 | 3 | import android.support.test.InstrumentationRegistry 4 | import android.support.test.runner.AndroidJUnit4 5 | 6 | import org.junit.Test 7 | import org.junit.runner.RunWith 8 | 9 | import org.junit.Assert.* 10 | 11 | /** 12 | * Instrumented test, which will execute on an Android device. 13 | * 14 | * See [testing documentation](http://d.android.com/tools/testing). 15 | */ 16 | @RunWith(AndroidJUnit4::class) 17 | class ExampleInstrumentedTest { 18 | @Test 19 | fun useAppContext() { 20 | // Context of the app under test. 21 | val appContext = InstrumentationRegistry.getTargetContext() 22 | assertEquals("br.com.kassianoresende.doomfire", appContext.packageName) 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /playground/android-implementation-kotlin/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /playground/android-implementation-kotlin/app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 19 | 20 | -------------------------------------------------------------------------------- /playground/android-implementation-kotlin/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /playground/android-implementation-kotlin/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /playground/android-implementation-kotlin/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/android-implementation-kotlin/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /playground/android-implementation-kotlin/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/android-implementation-kotlin/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /playground/android-implementation-kotlin/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/android-implementation-kotlin/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /playground/android-implementation-kotlin/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/android-implementation-kotlin/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /playground/android-implementation-kotlin/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/android-implementation-kotlin/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /playground/android-implementation-kotlin/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/android-implementation-kotlin/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /playground/android-implementation-kotlin/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/android-implementation-kotlin/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /playground/android-implementation-kotlin/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/android-implementation-kotlin/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /playground/android-implementation-kotlin/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/android-implementation-kotlin/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /playground/android-implementation-kotlin/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/android-implementation-kotlin/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /playground/android-implementation-kotlin/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #008577 4 | #00574B 5 | #D81B60 6 | 7 | -------------------------------------------------------------------------------- /playground/android-implementation-kotlin/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | DoomFire 3 | 4 | -------------------------------------------------------------------------------- /playground/android-implementation-kotlin/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /playground/android-implementation-kotlin/app/src/test/java/br/com/kassianoresende/doomfire/ExampleUnitTest.kt: -------------------------------------------------------------------------------- 1 | package br.com.kassianoresende.doomfire 2 | 3 | import org.junit.Test 4 | 5 | import org.junit.Assert.* 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * See [testing documentation](http://d.android.com/tools/testing). 11 | */ 12 | class ExampleUnitTest { 13 | @Test 14 | fun addition_isCorrect() { 15 | assertEquals(4, 2 + 2) 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /playground/android-implementation-kotlin/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | ext.kotlin_version = '1.3.11' 5 | ext.anko_version='0.10.8' 6 | 7 | repositories { 8 | google() 9 | jcenter() 10 | } 11 | dependencies { 12 | classpath 'com.android.tools.build:gradle:3.2.1' 13 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 14 | 15 | // NOTE: Do not place your application dependencies here; they belong 16 | // in the individual module build.gradle files 17 | } 18 | } 19 | 20 | allprojects { 21 | repositories { 22 | google() 23 | jcenter() 24 | } 25 | } 26 | 27 | task clean(type: Delete) { 28 | delete rootProject.buildDir 29 | } 30 | -------------------------------------------------------------------------------- /playground/android-implementation-kotlin/fire.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/android-implementation-kotlin/fire.gif -------------------------------------------------------------------------------- /playground/android-implementation-kotlin/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | # IDE (e.g. Android Studio) users: 3 | # Gradle settings configured through the IDE *will override* 4 | # any settings specified in this file. 5 | # For more details on how to configure your build environment visit 6 | # http://www.gradle.org/docs/current/userguide/build_environment.html 7 | # Specifies the JVM arguments used for the daemon process. 8 | # The setting is particularly useful for tweaking memory settings. 9 | org.gradle.jvmargs=-Xmx1536m 10 | # When configured, Gradle will run in incubating parallel mode. 11 | # This option should only be used with decoupled projects. More details, visit 12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 13 | # org.gradle.parallel=true 14 | # Kotlin code style for this project: "official" or "obsolete": 15 | kotlin.code.style=official 16 | -------------------------------------------------------------------------------- /playground/android-implementation-kotlin/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/android-implementation-kotlin/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /playground/android-implementation-kotlin/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /playground/android-implementation-kotlin/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /playground/burning-elements/README.md: -------------------------------------------------------------------------------- 1 | # Doom Fire Algorithm applied in elements 2 | Fire effect from Doom implemented in plain JavaScript and using a Table to render the final effect above HTML elements. 3 | 4 | - [Click here for the Demo page](https://filipedeschamps.github.io/doom-fire-algorithm/playground/burning-elements/) 5 | 6 | ## Author 7 | 8 | | [
@mmoraisa](https://github.com/mmoraisa) | 9 | | :---: | 10 | -------------------------------------------------------------------------------- /playground/burning-elements/burnElement.css: -------------------------------------------------------------------------------- 1 | .burn-elements-fire { 2 | pointer-events: none; 3 | position: absolute; 4 | } -------------------------------------------------------------------------------- /playground/c#-unity-3d/Assets/Material.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a5bc6470a5903c249bb79845ad94c916 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /playground/c#-unity-3d/Assets/Material/Material Plane.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bad09248170a3804fb004bbc2314ead6 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /playground/c#-unity-3d/Assets/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 01c0c85039acf9343b59131ed58cfa6f 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /playground/c#-unity-3d/Assets/Scenes/SimpleFire.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 10fdb5c485560e844a9bb3b07e08af16 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /playground/c#-unity-3d/Assets/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 86a6dbe6aaae41c4da1f62fa4e0f87e5 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /playground/c#-unity-3d/Assets/Scripts/CameraController.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | public class CameraController : MonoBehaviour 4 | { 5 | [SerializeField] 6 | private Transform player; 7 | [SerializeField] 8 | private float distance = 0.1f; 9 | 10 | private const float Y_ANGLE_MIN = -25.0f; 11 | private const float Y_ANGLE_MAX = 50.0F; 12 | private float currentX = 0.0f; 13 | private float currentY = 0.0f; 14 | 15 | void Update() 16 | { 17 | currentX += Input.GetAxis("Mouse X"); 18 | currentY += Input.GetAxis("Mouse Y"); 19 | 20 | currentY = Mathf.Clamp(currentY, Y_ANGLE_MIN, Y_ANGLE_MAX); 21 | } 22 | 23 | private void LateUpdate() 24 | { 25 | gameObject.transform.position = player.position + Quaternion.Euler(currentY + 10, currentX, 0) * new Vector3(0, 0, distance); 26 | gameObject.transform.LookAt(player.position); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /playground/c#-unity-3d/Assets/Scripts/CameraController.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aa3a07ae258913c428b1b698665d552c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /playground/c#-unity-3d/Assets/Scripts/ParticleSystemController.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5892e4cd2727a624a8b339a74fe56f07 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /playground/c#-unity-3d/Assets/Scripts/PlayerController.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | public class PlayerController : MonoBehaviour 4 | { 5 | private Transform cam; 6 | [SerializeField] 7 | private float speed = 4f; 8 | [SerializeField] 9 | private float turnSpeed = 9f; 10 | 11 | private Rigidbody rigiBody; 12 | 13 | void Start() 14 | { 15 | rigiBody = GetComponent(); 16 | cam = Camera.main.transform; 17 | rigiBody.freezeRotation = true; 18 | } 19 | 20 | private void FixedUpdate() 21 | { 22 | Vector3 direction = (cam.right * Input.GetAxis("Horizontal")) + (cam.forward * Input.GetAxis("Vertical")); 23 | 24 | direction.y = 0; 25 | 26 | if (Input.GetAxis("Horizontal") != 0 || Input.GetAxis("Vertical") != 0) 27 | { 28 | rigiBody.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(direction), turnSpeed * Time.deltaTime); 29 | rigiBody.velocity = transform.forward * speed; 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /playground/c#-unity-3d/Assets/Scripts/PlayerController.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 62a3dd3093ab1984c9582db43b218a85 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /playground/c#-unity-3d/Assets/Scripts/UICanvas.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b9999edad8beb1e46811d6f3fbacc35b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /playground/c#-unity-3d/ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | m_Volume: 1 7 | Rolloff Scale: 1 8 | Doppler Factor: 1 9 | Default Speaker Mode: 2 10 | m_SampleRate: 0 11 | m_DSPBufferSize: 1024 12 | m_VirtualVoiceCount: 512 13 | m_RealVoiceCount: 32 14 | m_SpatializerPlugin: 15 | m_AmbisonicDecoderPlugin: 16 | m_DisableAudio: 0 17 | m_VirtualizeEffects: 1 18 | -------------------------------------------------------------------------------- /playground/c#-unity-3d/ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /playground/c#-unity-3d/ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: 8 | - enabled: 1 9 | path: Assets/Scenes/SampleScene.unity 10 | guid: 99c9720ab356a0642a771bea13969a05 11 | m_configObjects: {} 12 | -------------------------------------------------------------------------------- /playground/c#-unity-3d/ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 7 7 | m_ExternalVersionControlSupport: Visible Meta Files 8 | m_SerializationMode: 2 9 | m_LineEndingsForNewScripts: 2 10 | m_DefaultBehaviorMode: 0 11 | m_SpritePackerMode: 0 12 | m_SpritePackerPaddingPower: 1 13 | m_EtcTextureCompressorBehavior: 1 14 | m_EtcTextureFastCompressor: 1 15 | m_EtcTextureNormalCompressor: 2 16 | m_EtcTextureBestCompressor: 4 17 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd 18 | m_ProjectGenerationRootNamespace: 19 | m_UserGeneratedProjectSuffix: 20 | m_CollabEditorSettings: 21 | inProgressEnabled: 1 22 | -------------------------------------------------------------------------------- /playground/c#-unity-3d/ProjectSettings/NetworkManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!149 &1 4 | NetworkManager: 5 | m_ObjectHideFlags: 0 6 | m_DebugLevel: 0 7 | m_Sendrate: 15 8 | m_AssetToPrefab: {} 9 | -------------------------------------------------------------------------------- /playground/c#-unity-3d/ProjectSettings/PresetManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1386491679 &1 4 | PresetManager: 5 | m_ObjectHideFlags: 0 6 | m_DefaultList: 7 | - type: 8 | m_NativeTypeID: 108 9 | m_ManagedTypePPtr: {fileID: 0} 10 | m_ManagedTypeFallback: 11 | defaultPresets: 12 | - m_Preset: {fileID: 2655988077585873504, guid: c1cf8506f04ef2c4a88b64b6c4202eea, 13 | type: 2} 14 | - type: 15 | m_NativeTypeID: 1020 16 | m_ManagedTypePPtr: {fileID: 0} 17 | m_ManagedTypeFallback: 18 | defaultPresets: 19 | - m_Preset: {fileID: 2655988077585873504, guid: 0cd792cc87e492d43b4e95b205fc5cc6, 20 | type: 2} 21 | - type: 22 | m_NativeTypeID: 1006 23 | m_ManagedTypePPtr: {fileID: 0} 24 | m_ManagedTypeFallback: 25 | defaultPresets: 26 | - m_Preset: {fileID: 2655988077585873504, guid: 7a99f8aa944efe94cb9bd74562b7d5f9, 27 | type: 2} 28 | -------------------------------------------------------------------------------- /playground/c#-unity-3d/ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2018.3.3f1 2 | -------------------------------------------------------------------------------- /playground/c#-unity-3d/ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - 12 | - Water 13 | - UI 14 | - 15 | - 16 | - PostProcessing 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | -------------------------------------------------------------------------------- /playground/c#-unity-3d/ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.1 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /playground/c#-unity-3d/ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 1 7 | m_Enabled: 0 8 | m_TestMode: 0 9 | m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events 10 | m_EventUrl: https://cdp.cloud.unity3d.com/v1/events 11 | m_ConfigUrl: https://config.uca.cloud.unity3d.com 12 | m_TestInitMode: 0 13 | CrashReportingSettings: 14 | m_EventUrl: https://perf-events.cloud.unity3d.com 15 | m_Enabled: 0 16 | m_LogBufferSize: 10 17 | m_CaptureEditorExceptions: 1 18 | UnityPurchasingSettings: 19 | m_Enabled: 0 20 | m_TestMode: 0 21 | UnityAnalyticsSettings: 22 | m_Enabled: 1 23 | m_TestMode: 0 24 | m_InitializeOnStartup: 1 25 | UnityAdsSettings: 26 | m_Enabled: 0 27 | m_InitializeOnStartup: 1 28 | m_TestMode: 0 29 | m_IosGameId: 30 | m_AndroidGameId: 31 | m_GameIds: {} 32 | m_GameId: 33 | PerformanceReportingSettings: 34 | m_Enabled: 0 35 | -------------------------------------------------------------------------------- /playground/c#-unity-3d/ProjectSettings/VFXManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!937362698 &1 4 | VFXManager: 5 | m_ObjectHideFlags: 0 6 | m_IndirectShader: {fileID: 0} 7 | m_CopyBufferShader: {fileID: 0} 8 | m_SortShader: {fileID: 0} 9 | m_RenderPipeSettingsPath: 10 | m_FixedTimeStep: 0.016666668 11 | m_MaxDeltaTime: 0.05 12 | -------------------------------------------------------------------------------- /playground/c#-unity-3d/fire.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/c#-unity-3d/fire.JPG -------------------------------------------------------------------------------- /playground/c#-unity-3d/readme.md: -------------------------------------------------------------------------------- 1 | # Simple particle fire with Unity 3d 2 | 3 | ![alt text](https://github.com/MainDuelo/doom-fire-algorithm/blob/master/playground/c%23-unity-3d/fire.JPG) 4 | 5 | # Information 6 | 7 | Used unity 2018.3.3f1 8 | 9 | Project set in scene ``Assets/Scenes/SimpleFire`` 10 | 11 | # Links 12 | 13 | - [Scripts](https://github.com/MainDuelo/doom-fire-algorithm/tree/master/playground/c%23-unity-3d/Assets/Scripts) 14 | 15 | - [Demo](https://main-duelo.itch.io/fire-particles) 16 | 17 | - [Manual Particle System](https://docs.unity3d.com/Manual/class-ParticleSystem.html) 18 | 19 | - [Tutorial Particle System](https://unity3d.com/pt/learn/tutorials/topics/graphics/particle-system) 20 | 21 | - [Unity](https://unity3d.com/) 22 | 23 | - [Manual Unity](https://docs.unity3d.com/Manual/index.html) 24 | 25 | ## Author 26 | 27 | | [
@MainDuelo](https://github.com/MainDuelo) | 28 | | :---: | -------------------------------------------------------------------------------- /playground/cpp-qt-implementation/doomfire.h: -------------------------------------------------------------------------------- 1 | #ifndef DOOMFIRE_H 2 | #define DOOMFIRE_H 3 | 4 | #include 5 | 6 | class DoomFire 7 | { 8 | public: 9 | DoomFire(int w, int h); 10 | ~DoomFire(); 11 | 12 | const uchar* getAlignedFireVector(); 13 | int witdh(); 14 | int height(); 15 | 16 | int windSpeed(); 17 | 18 | void createFire(); 19 | void destroyFire(); 20 | void propagateFire(); 21 | 22 | void decreaseWindSpeed(); 23 | void increaseWindSpeed(); 24 | 25 | void resetFire(); 26 | void printFire(); 27 | 28 | void resize(int w, int h); 29 | 30 | private: 31 | class Priv; 32 | Priv *d; 33 | }; 34 | 35 | #endif // DOOMFIRE_H 36 | -------------------------------------------------------------------------------- /playground/cpp-qt-implementation/firewidget.h: -------------------------------------------------------------------------------- 1 | #ifndef FIREWIDGET_H 2 | #define FIREWIDGET_H 3 | 4 | #include 5 | #include 6 | 7 | class FireWidget : public QWidget 8 | { 9 | Q_OBJECT 10 | public: 11 | explicit FireWidget(int w, int h, QWidget *parent = nullptr); 12 | ~FireWidget(); 13 | 14 | QString playPauseString(); 15 | QString CreateDestroyString(); 16 | QString windSpeed(); 17 | QString updateInterval(); 18 | 19 | protected: 20 | class Priv; 21 | 22 | Priv *d; 23 | QTimer *timer; 24 | 25 | 26 | signals: 27 | void statusUpdated(); 28 | 29 | public slots: 30 | void onTimerUpdate(); 31 | 32 | void onPlayPausePressed(); 33 | void onCreateDestroyPressed(); 34 | 35 | void onIncreaseWindPressed(); 36 | void onDecreaseWindPressed(); 37 | 38 | void onIncreaseIntervalPressed(); 39 | void onDecreaseIntervalPressed(); 40 | 41 | // QWidget interface 42 | protected: 43 | void resizeEvent(QResizeEvent *event); 44 | void paintEvent(QPaintEvent *event); 45 | 46 | }; 47 | 48 | #endif // FIREWIDGET_H 49 | -------------------------------------------------------------------------------- /playground/cpp-qt-implementation/img/fire_qt_mac.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/cpp-qt-implementation/img/fire_qt_mac.jpg -------------------------------------------------------------------------------- /playground/cpp-qt-implementation/main.cpp: -------------------------------------------------------------------------------- 1 | #include "mainwindow.h" 2 | #include 3 | 4 | int main(int argc, char *argv[]) 5 | { 6 | QApplication a(argc, argv); 7 | MainWindow w; 8 | w.show(); 9 | 10 | return a.exec(); 11 | } 12 | -------------------------------------------------------------------------------- /playground/cpp-qt-implementation/mainwindow.h: -------------------------------------------------------------------------------- 1 | #ifndef MAINWINDOW_H 2 | #define MAINWINDOW_H 3 | 4 | #include "firewidget.h" 5 | 6 | #include 7 | #include 8 | #include 9 | 10 | namespace Ui { 11 | class MainWindow; 12 | } 13 | 14 | class MainWindow : public QMainWindow 15 | { 16 | Q_OBJECT 17 | 18 | public: 19 | explicit MainWindow(QWidget *parent = nullptr); 20 | ~MainWindow(); 21 | 22 | private: 23 | Ui::MainWindow *ui; 24 | FireWidget *fireWidget; 25 | 26 | QPushButton* playPauseButton; 27 | QPushButton* createDestroyButton; 28 | 29 | QPushButton* DecreaseWindButton; 30 | QPushButton* IncreaseWindButton; 31 | 32 | QPushButton* DecreaseInvervalButton; 33 | QPushButton* IncreaseInvervalButton; 34 | 35 | QLabel *WindLabel; 36 | QLabel *WindSpeedLabel; 37 | QLabel *updateLabel; 38 | QLabel *UpdateIntervalLabel; 39 | 40 | public slots: 41 | void onStatusUpdated(); 42 | }; 43 | 44 | #endif // MAINWINDOW_H 45 | -------------------------------------------------------------------------------- /playground/cpp-sfml-implementation/.gitattributes: -------------------------------------------------------------------------------- 1 | cmake_modules/* linguist-vendored 2 | -------------------------------------------------------------------------------- /playground/cpp-sfml-implementation/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.10) 2 | project(DoomFire) 3 | 4 | set(CMAKE_CXX_STANDARD 11) 5 | 6 | # Compile to debug 7 | #set(CMAKE_BUILD_TYPE Debug) 8 | 9 | # Adds all header files in the include folder to the project 10 | include_directories(include) 11 | 12 | # Adds all the source files in the src folder to the project 13 | file(GLOB SOURCES "src/*.cpp") 14 | # set(MAIN main.cpp src/file1.cpp src/file2.cpp) 15 | 16 | # Creates project executable 17 | # add_executable(DoomFire ${MAIN}) 18 | add_executable(DoomFire main.cpp ${SOURCES}) 19 | 20 | # Detect and add SFML 21 | set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH}) 22 | find_package(SFML 2 REQUIRED system graphics window network audio) 23 | if(SFML_FOUND) 24 | include_directories(${SFML_INCLUDE_DIR}) 25 | target_link_libraries(${PROJECT_NAME} ${SFML_LIBRARIES}) 26 | endif() 27 | -------------------------------------------------------------------------------- /playground/csharp-console-implementation/assets/doom-fire-algo2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/csharp-console-implementation/assets/doom-fire-algo2.gif -------------------------------------------------------------------------------- /playground/csharp-console-implementation/csharp-console-implementation.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | csharp_console_implementation 7 | csharp_console_implementation.Program 8 | 9 | 10 | 11 | x86 12 | 13 | 14 | 15 | 16 | contentfiles 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /playground/css-grid-doom-fire/doom-fire.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/css-grid-doom-fire/doom-fire.gif -------------------------------------------------------------------------------- /playground/delphi-fmx/DoomFire.dpr: -------------------------------------------------------------------------------- 1 | program DoomFire; 2 | 3 | uses 4 | System.StartUpCopy, 5 | FMX.Forms, 6 | Main in 'Main.pas' {frmMain}, 7 | DoomFireClass in 'DoomFireClass.pas'; 8 | 9 | {$R *.res} 10 | 11 | begin 12 | Application.Initialize; 13 | Application.CreateForm(TfrmMain, frmMain); 14 | Application.Run; 15 | end. 16 | -------------------------------------------------------------------------------- /playground/delphi-fmx/DoomFire.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/delphi-fmx/DoomFire.res -------------------------------------------------------------------------------- /playground/delphi-fmx/demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/delphi-fmx/demo.png -------------------------------------------------------------------------------- /playground/doom-fire-algorithm-ascii-art/README.md: -------------------------------------------------------------------------------- 1 | ![algorithm running in cmd](https://i.imgur.com/FOdCEcN.gif) 2 | # Doom Fire Effect Ascii Art Version 3 | This algorithm is written in **Javascript** using **Node.js** environment! 4 | ## To Run 5 | In project folder type: 6 | ```console 7 | hello@world:~$ node index.js 8 | ``` 9 | or use the **start** script inside **package.json**: 10 | ```console 11 | hello@world:~$ npm run start 12 | 13 | if you are using yarn: 14 | hello@world:~$ yarn start 15 | ``` 16 | ## Tips 17 | Inside the **index.js** file you can adjust the width and height of your fire! 18 | 19 | ## Author 20 | [Aldriê Mizobuti](https://github.com/Aldrie) -------------------------------------------------------------------------------- /playground/doom-fire-algorithm-ascii-art/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "doom-fire-algorithm-ascii-art", 3 | "version": "1.0.0", 4 | "description": "Doom fire effect implemented in Node.js using Ascii Art!", 5 | "main": "index.js", 6 | "scripts": { 7 | "start": "node index.js" 8 | }, 9 | "author": "Aldriê Mizobuti", 10 | "license": "MIT" 11 | } 12 | -------------------------------------------------------------------------------- /playground/doom-fire-algorithm-commented/README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 | 4 | 5 |

6 | 7 | # Doom Fire Algorithm 8 | Fire effect from Doom at the upside down implemented in plain JavaScript and using a Table to render the final effect. 9 | 10 | - [Click here for the Demo page](https://filipedeschamps.github.io/doom-fire-algorithm/playground/1st-implementation-with-tables-upside-down/) 11 | 12 | This project was inspired by [this article](http://fabiensanglard.net/doom_fire_psx/). 13 | 14 | ## Author 15 | 16 | | [
@filipedeschamps](https://github.com/filipedeschamps) | 17 | | :---: | 18 | -------------------------------------------------------------------------------- /playground/doom-fire-algorithm-ios-spritekit/.gitignore: -------------------------------------------------------------------------------- 1 | ### Xcode ### 2 | # Xcode 3 | # 4 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore 5 | 6 | ## User settings 7 | xcuserdata/ 8 | 9 | ## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9) 10 | *.xcscmblueprint 11 | *.xccheckout 12 | 13 | ## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4) 14 | build/ 15 | DerivedData/ 16 | *.moved-aside 17 | *.pbxuser 18 | !default.pbxuser 19 | *.mode1v3 20 | !default.mode1v3 21 | *.mode2v3 22 | !default.mode2v3 23 | *.perspectivev3 24 | !default.perspectivev3 25 | 26 | ### Xcode Patch ### 27 | *.xcodeproj/* 28 | !*.xcodeproj/project.pbxproj 29 | !*.xcodeproj/xcshareddata/ 30 | !*.xcworkspace/contents.xcworkspacedata 31 | /*.gcno 32 | **/xcshareddata/WorkspaceSettings.xcsettings 33 | -------------------------------------------------------------------------------- /playground/doom-fire-algorithm-ios-spritekit/DoomFire/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // DoomFire 4 | // 5 | // Created by Murilo Paixão on 31/01/19. 6 | // Copyright © 2019 Murilo Paixão. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 17 | return true 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /playground/doom-fire-algorithm-ios-spritekit/DoomFire/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /playground/doom-fire-algorithm-ios-spritekit/DoomFire/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // DoomFire 4 | // 5 | // Created by Murilo Paixão on 31/01/19. 6 | // Copyright © 2019 Murilo Paixão. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import SpriteKit 11 | 12 | class ViewController: UIViewController { 13 | 14 | override func viewDidLoad() { 15 | super.viewDidLoad() 16 | 17 | let skView = SKView(frame: view.bounds) 18 | skView.showsFPS = true 19 | skView.showsNodeCount = true 20 | 21 | view.addSubview(skView) 22 | 23 | let scene = MainScene(size: skView.frame.size) 24 | skView.presentScene(scene) 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /playground/doom-fire-algorithm-ios-spritekit/LICENSE.md: -------------------------------------------------------------------------------- 1 | ## WTFPL 2 | 3 | ``` 4 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 5 | Version 2, December 2004 6 | 7 | Copyright (C) 2019 Murilo Paixão 8 | 9 | Everyone is permitted to copy and distribute verbatim or modified 10 | copies of this license document, and changing it is allowed as long 11 | as the name is changed. 12 | 13 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 14 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 15 | 16 | 0. You just DO WHAT THE FUCK YOU WANT TO. 17 | ``` 18 | -------------------------------------------------------------------------------- /playground/doom-fire-algorithm-ios-spritekit/README.md: -------------------------------------------------------------------------------- 1 | demo 2 | 3 | ## DOOM Fire on iOS 4 | This project was heavily inspired by [this repository](https://github.com/filipedeschamps/doom-fire-algorithm). 5 | 6 | ## License 7 | 8 | ``` 9 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 10 | Version 2, December 2004 11 | 12 | Copyright (C) 2019 Murilo Paixão 13 | 14 | Everyone is permitted to copy and distribute verbatim or modified 15 | copies of this license document, and changing it is allowed as long 16 | as the name is changed. 17 | 18 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 19 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 20 | 21 | 0. You just DO WHAT THE FUCK YOU WANT TO. 22 | ``` 23 | 24 | -------------------------------------------------------------------------------- /playground/doom-fire-algorithm-ios-spritekit/assets/simulator.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/doom-fire-algorithm-ios-spritekit/assets/simulator.gif -------------------------------------------------------------------------------- /playground/doom-fire-algorithm-java/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /playground/doom-fire-algorithm-java/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | doom-fire-algorithm-java 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /playground/doom-fire-algorithm-java/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 4 | org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve 5 | org.eclipse.jdt.core.compiler.compliance=1.8 6 | org.eclipse.jdt.core.compiler.debug.lineNumber=generate 7 | org.eclipse.jdt.core.compiler.debug.localVariable=generate 8 | org.eclipse.jdt.core.compiler.debug.sourceFile=generate 9 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 10 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 11 | org.eclipse.jdt.core.compiler.source=1.8 12 | -------------------------------------------------------------------------------- /playground/doom-fire-algorithm-java/doom.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/doom-fire-algorithm-java/doom.gif -------------------------------------------------------------------------------- /playground/doom-fire-js-canvas2d-typedarrays/Readme.md: -------------------------------------------------------------------------------- 1 | ## Demo 2 | Fire effect from Doom implemented in Kotlin using custom view implementation for Android. 3 | 4 | - [Click here for the Demo page](https://codepen.io/NiklasKnaack/pen/OJKoyKd) 5 | 6 | This project was inspired by [this article](http://fabiensanglard.net/doom_fire_psx/). 7 | 8 | ## Author 9 | 10 | _– [Niklas Knaack](http://niklasknaack.de/)_ -------------------------------------------------------------------------------- /playground/doom-fire-matrix-led-arduino/doom-fire-matrix.ino: -------------------------------------------------------------------------------- 1 | /* 2 | doom-fire-matrix.ino 3 | 4 | Author: Samuel da Costa Araújo Nunes 5 | Date: Set 2020 6 | Version: v0.1 7 | */ 8 | 9 | #include "Fire.h" 10 | 11 | DoomFire doomFire(D3, 32, 32); // Pino da matrix de leds WS1812B , altura, largura. 12 | 13 | void setup() { 14 | Serial.begin(9600); 15 | doomFire.setup(); 16 | } 17 | 18 | void loop() { 19 | doomFire.loop(); 20 | } 21 | -------------------------------------------------------------------------------- /playground/doom-fire-with-extinguish-fire-function/fire.css: -------------------------------------------------------------------------------- 1 | table{ 2 | border-collapse: collapse; 3 | border: 1px solid #000; 4 | } 5 | td{ 6 | width: 18px; 7 | height: 18px; 8 | border: 1px solid #000; 9 | text-align: center; 10 | vertical-align: center; 11 | font-family: monospace; 12 | font-size: 12px; 13 | position: relative; 14 | } 15 | .pixel-index{ 16 | font-size: 3px; 17 | display: inline-block; 18 | position: absolute; 19 | top: 2px; 20 | right: 2px; 21 | color: #000; 22 | 23 | } 24 | td.pixel { 25 | width: 18px; 26 | height: 18px; 27 | border: 0; 28 | } 29 | #degub{ 30 | position: relative; 31 | 32 | float: right; 33 | padding-right: 20%; 34 | } -------------------------------------------------------------------------------- /playground/doom-fire-with-extinguish-fire-function/fire.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 |
13 |
14 | 15 | -------------------------------------------------------------------------------- /playground/elixir-algorithm-render-in-terminal/.formatter.exs: -------------------------------------------------------------------------------- 1 | # Used by "mix format" 2 | [ 3 | inputs: ["{mix,.formatter}.exs", "{config,lib,test}/**/*.{ex,exs}"] 4 | ] 5 | -------------------------------------------------------------------------------- /playground/elixir-algorithm-render-in-terminal/.gitignore: -------------------------------------------------------------------------------- 1 | # The directory Mix will write compiled artifacts to. 2 | /_build/ 3 | 4 | # If you run "mix test --cover", coverage assets end up here. 5 | /cover/ 6 | 7 | # The directory Mix downloads your dependencies sources to. 8 | /deps/ 9 | 10 | # Where 3rd-party dependencies like ExDoc output generated docs. 11 | /doc/ 12 | 13 | # Ignore .fetch files in case you like to edit your project deps locally. 14 | /.fetch 15 | 16 | # If the VM crashes, it generates a dump, let's ignore it too. 17 | erl_crash.dump 18 | 19 | # Also ignore archive artifacts (built via "mix archive.build"). 20 | *.ez 21 | 22 | # Ignore package tarball (built via "mix hex.build"). 23 | doom_fire-*.tar 24 | 25 | -------------------------------------------------------------------------------- /playground/elixir-algorithm-render-in-terminal/README.md: -------------------------------------------------------------------------------- 1 | # Elixir DOOM Fire 2 | 3 |

4 | 5 |

6 | 7 | CLI for drawing doom fire effect in the terminal using ANSI-256 color palette. Meant more as a fun exercise in elixir than anything else. Improvements and tips are welcome. 8 | 9 | 10 | Elixir version adapted from the rust version made by [Moog](https://github.com/moog/rust-doom-fire) 11 | 12 | ## Installation 13 | 14 | This is a simple CLI meant to be called from inside iex (elixir interactive terminal). You can find instructions on how to install elixir [here](https://elixir-lang.org/install.html). 15 | 16 | ```sh 17 | git clone git@github.com:herbstrith/elixir-doom-fire.git 18 | cd elixir-doom-fire 19 | ``` 20 | 21 | ## Execution 22 | Boot up a iex session, load the module and let it burn. 23 | 24 | ```sh 25 | iex -S mix 26 | DoomFire.burn() 27 | ``` 28 | -------------------------------------------------------------------------------- /playground/elixir-algorithm-render-in-terminal/elixir-doom-fire.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/elixir-algorithm-render-in-terminal/elixir-doom-fire.gif -------------------------------------------------------------------------------- /playground/elixir-algorithm-render-in-terminal/lib/utils.ex: -------------------------------------------------------------------------------- 1 | defmodule DoomFire.Utils.TupleMatrix do 2 | def put(tuple_matrix, pos_i, pos_j, value) do 3 | line_i = elem(tuple_matrix, pos_i) 4 | edited_line_i = put_elem(line_i, pos_j, value) 5 | put_elem(tuple_matrix, pos_i, edited_line_i) 6 | end 7 | 8 | def get(tuple_matrix, pos_i, pos_j) do 9 | line_i = elem(tuple_matrix, pos_i) 10 | elem(line_i, pos_j) 11 | end 12 | 13 | def print(tuple_matrix) do 14 | Enum.each( 15 | Tuple.to_list(tuple_matrix), 16 | fn line -> IO.puts(inspect(line)) end 17 | ) 18 | end 19 | end 20 | -------------------------------------------------------------------------------- /playground/elixir-algorithm-render-in-terminal/mix.exs: -------------------------------------------------------------------------------- 1 | defmodule DoomFire.MixProject do 2 | use Mix.Project 3 | 4 | def project do 5 | [ 6 | app: :doom_fire, 7 | version: "0.1.0", 8 | elixir: "~> 1.7", 9 | start_permanent: Mix.env() == :prod, 10 | deps: deps() 11 | ] 12 | end 13 | 14 | # Run "mix help compile.app" to learn about applications. 15 | def application do 16 | [ 17 | extra_applications: [:logger] 18 | ] 19 | end 20 | 21 | # Run "mix help deps" to learn about dependencies. 22 | defp deps do 23 | [] 24 | end 25 | end 26 | -------------------------------------------------------------------------------- /playground/embedded_version-STM32F429-mbed/Doom_Flame-F429ZI_v02.DISCO_F429ZI.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/embedded_version-STM32F429-mbed/Doom_Flame-F429ZI_v02.DISCO_F429ZI.bin -------------------------------------------------------------------------------- /playground/embedded_version-STM32F429-mbed/README.md: -------------------------------------------------------------------------------- 1 | ### Embedded version of Doom Fire Algorithm 2 | 3 | Implemented in C using SMT32F429 board and [mbed](https://os.mbed.com/users/agaelema/code/Doom_Flame-F429ZI_v02/). 4 | * STM32F429 - Arm Cortex-M4 180MHz 5 | 6 | [Working Video](http://bit.ly/2TaW3ZM) 7 | 8 | ![alt text](https://github.com/agaelema/doom-fire-algorithm/blob/master/playground/embedded_version-STM32F429-mbed/doom-stm32f429.gif?raw=true "Doom flames on microcontroller") 9 | -------------------------------------------------------------------------------- /playground/embedded_version-STM32F429-mbed/doom-stm32f429.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/embedded_version-STM32F429-mbed/doom-stm32f429.gif -------------------------------------------------------------------------------- /playground/falling-stars/README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 | 4 | 5 |

6 | 7 | # Follow mouse 8 | Doom Fire Effect with the algorithm of a mouse follower (very simple vector based) 9 | 10 | - [Click here for the Demo page](https://filipedeschamps.github.io/doom-fire-algorithm/playground/follow-mouse/) 11 | - [Click here for the Video tutorial](https://www.youtube.com/watch?v=HCjDjsHPOco) 12 | 13 | ## Author 14 | 15 | | [
@filipedeschamps](https://github.com/filipedeschamps) | 16 | | :---: | 17 | -------------------------------------------------------------------------------- /playground/falling-stars/demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/falling-stars/demo.gif -------------------------------------------------------------------------------- /playground/falling-stars/star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/falling-stars/star.png -------------------------------------------------------------------------------- /playground/flutter-implementation/.gitignore: -------------------------------------------------------------------------------- 1 | # Miscellaneous 2 | *.class 3 | *.log 4 | *.pyc 5 | *.swp 6 | .DS_Store 7 | .atom/ 8 | .buildlog/ 9 | .history 10 | .svn/ 11 | 12 | # IntelliJ related 13 | *.iml 14 | *.ipr 15 | *.iws 16 | .idea/ 17 | 18 | # The .vscode folder contains launch configuration and tasks you configure in 19 | # VS Code which you may wish to be included in version control, so this line 20 | # is commented out by default. 21 | #.vscode/ 22 | 23 | # Flutter/Dart/Pub related 24 | **/doc/api/ 25 | .dart_tool/ 26 | .flutter-plugins 27 | .packages 28 | .pub-cache/ 29 | .pub/ 30 | /build/ 31 | 32 | # Web related 33 | lib/generated_plugin_registrant.dart 34 | 35 | # Exceptions to above rules. 36 | !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages 37 | -------------------------------------------------------------------------------- /playground/flutter-implementation/.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled and should not be manually edited. 5 | 6 | version: 7 | revision: 3fea2838df051e99b2f72127a7d950287e522d0b 8 | channel: master 9 | 10 | project_type: app 11 | -------------------------------------------------------------------------------- /playground/flutter-implementation/README.md: -------------------------------------------------------------------------------- 1 | # flutter_doom_fire 2 | 3 | Flutter implementation of DOOM fire algorithm. 4 | 5 | ![sample-fire](https://user-images.githubusercontent.com/502058/67634424-81edad00-f89a-11e9-94aa-34b10ad3ee1d.gif) 6 | -------------------------------------------------------------------------------- /playground/flutter-implementation/android/.gitignore: -------------------------------------------------------------------------------- 1 | gradle-wrapper.jar 2 | /.gradle 3 | /captures/ 4 | /gradlew 5 | /gradlew.bat 6 | /local.properties 7 | GeneratedPluginRegistrant.java 8 | -------------------------------------------------------------------------------- /playground/flutter-implementation/android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /playground/flutter-implementation/android/app/src/main/kotlin/com/example/flutter_doom_fire/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package com.example.flutter_doom_fire 2 | 3 | import android.os.Bundle 4 | import io.flutter.app.FlutterActivity 5 | import io.flutter.plugins.GeneratedPluginRegistrant 6 | 7 | class MainActivity: FlutterActivity() { 8 | override fun onCreate(savedInstanceState: Bundle?) { 9 | super.onCreate(savedInstanceState) 10 | GeneratedPluginRegistrant.registerWith(this) 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /playground/flutter-implementation/android/app/src/main/res/drawable/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /playground/flutter-implementation/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter-implementation/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /playground/flutter-implementation/android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter-implementation/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /playground/flutter-implementation/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter-implementation/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /playground/flutter-implementation/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter-implementation/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /playground/flutter-implementation/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter-implementation/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /playground/flutter-implementation/android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | -------------------------------------------------------------------------------- /playground/flutter-implementation/android/app/src/profile/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /playground/flutter-implementation/android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | ext.kotlin_version = '1.3.50' 3 | repositories { 4 | google() 5 | jcenter() 6 | } 7 | 8 | dependencies { 9 | classpath 'com.android.tools.build:gradle:3.5.0' 10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 11 | } 12 | } 13 | 14 | allprojects { 15 | repositories { 16 | google() 17 | jcenter() 18 | } 19 | } 20 | 21 | rootProject.buildDir = '../build' 22 | subprojects { 23 | project.buildDir = "${rootProject.buildDir}/${project.name}" 24 | } 25 | subprojects { 26 | project.evaluationDependsOn(':app') 27 | } 28 | 29 | task clean(type: Delete) { 30 | delete rootProject.buildDir 31 | } 32 | -------------------------------------------------------------------------------- /playground/flutter-implementation/android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx1536M 2 | android.enableR8=true 3 | android.useAndroidX=true 4 | android.enableJetifier=true 5 | -------------------------------------------------------------------------------- /playground/flutter-implementation/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Jun 23 08:50:38 CEST 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip 7 | -------------------------------------------------------------------------------- /playground/flutter-implementation/android/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | 3 | def flutterProjectRoot = rootProject.projectDir.parentFile.toPath() 4 | 5 | def plugins = new Properties() 6 | def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins') 7 | if (pluginsFile.exists()) { 8 | pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) } 9 | } 10 | 11 | plugins.each { name, path -> 12 | def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile() 13 | include ":$name" 14 | project(":$name").projectDir = pluginDirectory 15 | } 16 | -------------------------------------------------------------------------------- /playground/flutter-implementation/ios/.gitignore: -------------------------------------------------------------------------------- 1 | *.mode1v3 2 | *.mode2v3 3 | *.moved-aside 4 | *.pbxuser 5 | *.perspectivev3 6 | **/*sync/ 7 | .sconsign.dblite 8 | .tags* 9 | **/.vagrant/ 10 | **/DerivedData/ 11 | Icon? 12 | **/Pods/ 13 | **/.symlinks/ 14 | profile 15 | xcuserdata 16 | **/.generated/ 17 | Flutter/App.framework 18 | Flutter/Flutter.framework 19 | Flutter/Generated.xcconfig 20 | Flutter/app.flx 21 | Flutter/app.zip 22 | Flutter/flutter_assets/ 23 | Flutter/flutter_export_environment.sh 24 | ServiceDefinitions.json 25 | Runner/GeneratedPluginRegistrant.* 26 | 27 | # Exceptions to above rules. 28 | !default.mode1v3 29 | !default.mode2v3 30 | !default.pbxuser 31 | !default.perspectivev3 32 | -------------------------------------------------------------------------------- /playground/flutter-implementation/ios/Flutter/AppFrameworkInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | App 9 | CFBundleIdentifier 10 | io.flutter.flutter.app 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | App 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.0 23 | MinimumOSVersion 24 | 8.0 25 | 26 | 27 | -------------------------------------------------------------------------------- /playground/flutter-implementation/ios/Flutter/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Generated.xcconfig" 2 | -------------------------------------------------------------------------------- /playground/flutter-implementation/ios/Flutter/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Generated.xcconfig" 2 | -------------------------------------------------------------------------------- /playground/flutter-implementation/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /playground/flutter-implementation/ios/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /playground/flutter-implementation/ios/Runner/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Flutter 3 | 4 | @UIApplicationMain 5 | @objc class AppDelegate: FlutterAppDelegate { 6 | override func application( 7 | _ application: UIApplication, 8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? 9 | ) -> Bool { 10 | GeneratedPluginRegistrant.register(with: self) 11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions) 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /playground/flutter-implementation/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter-implementation/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png -------------------------------------------------------------------------------- /playground/flutter-implementation/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter-implementation/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png -------------------------------------------------------------------------------- /playground/flutter-implementation/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter-implementation/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png -------------------------------------------------------------------------------- /playground/flutter-implementation/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter-implementation/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png -------------------------------------------------------------------------------- /playground/flutter-implementation/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter-implementation/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png -------------------------------------------------------------------------------- /playground/flutter-implementation/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter-implementation/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png -------------------------------------------------------------------------------- /playground/flutter-implementation/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter-implementation/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png -------------------------------------------------------------------------------- /playground/flutter-implementation/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter-implementation/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png -------------------------------------------------------------------------------- /playground/flutter-implementation/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter-implementation/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png -------------------------------------------------------------------------------- /playground/flutter-implementation/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter-implementation/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png -------------------------------------------------------------------------------- /playground/flutter-implementation/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter-implementation/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png -------------------------------------------------------------------------------- /playground/flutter-implementation/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter-implementation/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png -------------------------------------------------------------------------------- /playground/flutter-implementation/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter-implementation/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png -------------------------------------------------------------------------------- /playground/flutter-implementation/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter-implementation/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /playground/flutter-implementation/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter-implementation/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /playground/flutter-implementation/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "LaunchImage.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "LaunchImage@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "LaunchImage@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /playground/flutter-implementation/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter-implementation/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png -------------------------------------------------------------------------------- /playground/flutter-implementation/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter-implementation/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png -------------------------------------------------------------------------------- /playground/flutter-implementation/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter-implementation/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png -------------------------------------------------------------------------------- /playground/flutter-implementation/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md: -------------------------------------------------------------------------------- 1 | # Launch Screen Assets 2 | 3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory. 4 | 5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. -------------------------------------------------------------------------------- /playground/flutter-implementation/ios/Runner/Runner-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #import "GeneratedPluginRegistrant.h" -------------------------------------------------------------------------------- /playground/flutter-implementation/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: flutter_doom_fire 2 | description: Flutter DOOM fire implementation. 3 | 4 | version: 1.0.0+1 5 | 6 | environment: 7 | sdk: ">=2.2.2 <3.0.0" 8 | 9 | dependencies: 10 | flutter: 11 | sdk: flutter 12 | 13 | dev_dependencies: 14 | flutter_test: 15 | sdk: flutter 16 | 17 | flutter: 18 | uses-material-design: true 19 | -------------------------------------------------------------------------------- /playground/flutter_fire/.flutter-plugins-dependencies: -------------------------------------------------------------------------------- 1 | {"_info":"// This is a generated file; do not edit or check into version control.","dependencyGraph":[{"name":"audioplayers","dependencies":["path_provider"]},{"name":"path_provider","dependencies":[]}]} -------------------------------------------------------------------------------- /playground/flutter_fire/.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled and should not be manually edited. 5 | 6 | version: 7 | revision: 68587a0916366e9512a78df22c44163d041dd5f3 8 | channel: stable 9 | 10 | project_type: app 11 | -------------------------------------------------------------------------------- /playground/flutter_fire/README.md: -------------------------------------------------------------------------------- 1 | # Doom Fire on Flutter! 2 | 3 | ## A simple implementation of Doom Fire Algorithm using Flutter / Dart ❤️. 4 | 5 | ![Example](./example.gif) 6 | 7 | _Enjoy it._ 8 | -------------------------------------------------------------------------------- /playground/flutter_fire/android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /playground/flutter_fire/android/app/src/main/kotlin/com/example/flutter_fire/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package com.example.flutter_fire 2 | 3 | import android.os.Bundle 4 | 5 | import io.flutter.app.FlutterActivity 6 | import io.flutter.plugins.GeneratedPluginRegistrant 7 | 8 | class MainActivity: FlutterActivity() { 9 | override fun onCreate(savedInstanceState: Bundle?) { 10 | super.onCreate(savedInstanceState) 11 | GeneratedPluginRegistrant.registerWith(this) 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /playground/flutter_fire/android/app/src/main/res/drawable/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /playground/flutter_fire/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter_fire/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /playground/flutter_fire/android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter_fire/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /playground/flutter_fire/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter_fire/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /playground/flutter_fire/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter_fire/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /playground/flutter_fire/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter_fire/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /playground/flutter_fire/android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | -------------------------------------------------------------------------------- /playground/flutter_fire/android/app/src/profile/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /playground/flutter_fire/android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | ext.kotlin_version = '1.2.71' 3 | repositories { 4 | google() 5 | jcenter() 6 | } 7 | 8 | dependencies { 9 | classpath 'com.android.tools.build:gradle:3.2.1' 10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 11 | } 12 | } 13 | 14 | allprojects { 15 | repositories { 16 | google() 17 | jcenter() 18 | } 19 | } 20 | 21 | rootProject.buildDir = '../build' 22 | subprojects { 23 | project.buildDir = "${rootProject.buildDir}/${project.name}" 24 | } 25 | subprojects { 26 | project.evaluationDependsOn(':app') 27 | } 28 | 29 | task clean(type: Delete) { 30 | delete rootProject.buildDir 31 | } 32 | -------------------------------------------------------------------------------- /playground/flutter_fire/android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx1536M 2 | 3 | -------------------------------------------------------------------------------- /playground/flutter_fire/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Jun 23 08:50:38 CEST 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip 7 | -------------------------------------------------------------------------------- /playground/flutter_fire/android/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | 3 | def flutterProjectRoot = rootProject.projectDir.parentFile.toPath() 4 | 5 | def plugins = new Properties() 6 | def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins') 7 | if (pluginsFile.exists()) { 8 | pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) } 9 | } 10 | 11 | plugins.each { name, path -> 12 | def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile() 13 | include ":$name" 14 | project(":$name").projectDir = pluginDirectory 15 | } 16 | -------------------------------------------------------------------------------- /playground/flutter_fire/example.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter_fire/example.gif -------------------------------------------------------------------------------- /playground/flutter_fire/ios/Flutter/AppFrameworkInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | App 9 | CFBundleIdentifier 10 | io.flutter.flutter.app 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | App 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.0 23 | MinimumOSVersion 24 | 8.0 25 | 26 | 27 | -------------------------------------------------------------------------------- /playground/flutter_fire/ios/Flutter/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" 2 | #include "Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /playground/flutter_fire/ios/Flutter/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" 2 | #include "Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /playground/flutter_fire/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /playground/flutter_fire/ios/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /playground/flutter_fire/ios/Runner/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Flutter 3 | 4 | @UIApplicationMain 5 | @objc class AppDelegate: FlutterAppDelegate { 6 | override func application( 7 | _ application: UIApplication, 8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? 9 | ) -> Bool { 10 | GeneratedPluginRegistrant.register(with: self) 11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions) 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /playground/flutter_fire/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter_fire/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png -------------------------------------------------------------------------------- /playground/flutter_fire/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter_fire/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png -------------------------------------------------------------------------------- /playground/flutter_fire/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter_fire/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png -------------------------------------------------------------------------------- /playground/flutter_fire/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter_fire/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png -------------------------------------------------------------------------------- /playground/flutter_fire/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter_fire/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png -------------------------------------------------------------------------------- /playground/flutter_fire/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter_fire/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png -------------------------------------------------------------------------------- /playground/flutter_fire/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter_fire/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png -------------------------------------------------------------------------------- /playground/flutter_fire/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter_fire/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png -------------------------------------------------------------------------------- /playground/flutter_fire/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter_fire/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png -------------------------------------------------------------------------------- /playground/flutter_fire/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter_fire/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png -------------------------------------------------------------------------------- /playground/flutter_fire/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter_fire/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png -------------------------------------------------------------------------------- /playground/flutter_fire/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter_fire/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png -------------------------------------------------------------------------------- /playground/flutter_fire/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter_fire/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png -------------------------------------------------------------------------------- /playground/flutter_fire/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter_fire/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /playground/flutter_fire/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter_fire/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /playground/flutter_fire/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "LaunchImage.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "LaunchImage@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "LaunchImage@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /playground/flutter_fire/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter_fire/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png -------------------------------------------------------------------------------- /playground/flutter_fire/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter_fire/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png -------------------------------------------------------------------------------- /playground/flutter_fire/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/flutter_fire/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png -------------------------------------------------------------------------------- /playground/flutter_fire/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md: -------------------------------------------------------------------------------- 1 | # Launch Screen Assets 2 | 3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory. 4 | 5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. -------------------------------------------------------------------------------- /playground/flutter_fire/ios/Runner/Runner-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #import "GeneratedPluginRegistrant.h" -------------------------------------------------------------------------------- /playground/flutter_fire/lib/main.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_fire/fire_widget.dart'; 3 | 4 | void main() => runApp(App()); 5 | 6 | class App extends StatelessWidget { 7 | @override 8 | Widget build(BuildContext context) { 9 | return MaterialApp( 10 | title: 'Flutter DoomFire Demo', 11 | theme: ThemeData( 12 | primarySwatch: Colors.blue, 13 | ), 14 | home: LayoutBuilder( 15 | builder: (BuildContext context, BoxConstraints constraints) { 16 | Size screenSize = MediaQuery.of(context).size; 17 | return DoomFire( 18 | size: screenSize, 19 | pixelSize: 4, 20 | millisecsToUpdate: 25, 21 | ); 22 | }), 23 | ); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /playground/fogodoom-control-screen-resizing/FogoDoom.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/fogodoom-control-screen-resizing/FogoDoom.gif -------------------------------------------------------------------------------- /playground/fogodoom-control-screen-resizing/README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 | 4 | 5 |

6 | 7 | # Doom Fire Algorithm 8 | Fire effect from Doom implemented in plain JavaScript and using a canvas image data to render the final effect. 9 | 10 | - [Click here for the Video tutorial](https://www.youtube.com/watch?v=HCjDjsHPOco) 11 | 12 | This project was inspired by [this article](http://fabiensanglard.net/doom_fire_psx/). 13 | 14 | ## Author 15 | 16 | | [
@jhonathan93](https://github.com/jhonathan93) | 17 | | :---: | -------------------------------------------------------------------------------- /playground/fogodoom-control-screen-resizing/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Fire DOOM 8 | 9 | 10 |
11 |
12 |

Dimesão

13 | 14 | 15 |
16 |
17 |

Modo grid

18 | 19 |
20 |
21 |
22 | 23 | 24 | -------------------------------------------------------------------------------- /playground/fogodoom-control-screen-resizing/js/dom/Elements.js: -------------------------------------------------------------------------------- 1 | export default { 2 | get() { 3 | this.inputWidth = document.querySelector('.width') 4 | this.inputHeight = document.querySelector('.height') 5 | this.button = document.querySelector('.changeDimension') 6 | this.buttonDebug = document.querySelector('.debug') 7 | }, 8 | 9 | set() { 10 | this.inputHeight.value = this.Config.fireHeight 11 | this.inputWidth.value = this.Config.fireWidth 12 | }, 13 | 14 | actions() { 15 | this.button.onclick = () => this.toggleDimension({Width : parseInt(this.inputWidth.value), Height : parseInt(this.inputHeight.value)}) 16 | this.buttonDebug.onclick = () => this.toggleDebugMode() 17 | }, 18 | 19 | changeName() { 20 | if (this.Config.debug) { 21 | this.buttonDebug.innerHTML = "Desativar" 22 | } else { 23 | this.buttonDebug.innerHTML = "Ativar" 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /playground/fogodoom-control-screen-resizing/js/index.js: -------------------------------------------------------------------------------- 1 | import Propagation from "./Propagation.js" 2 | 3 | window.addEventListener("load", Propagation.start()) 4 | -------------------------------------------------------------------------------- /playground/follow-mouse/README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 | 4 | 5 |

6 | 7 | # Follow mouse 8 | Doom Fire Effect with the algorithm of a mouse follower (very simple vector based) 9 | 10 | - [Click here for the Demo page](https://filipedeschamps.github.io/doom-fire-algorithm/playground/follow-mouse/) 11 | - [Click here for the Video tutorial](https://www.youtube.com/watch?v=HCjDjsHPOco) 12 | 13 | ## Author 14 | 15 | | [
@filipedeschamps](https://github.com/filipedeschamps) | 16 | | :---: | 17 | -------------------------------------------------------------------------------- /playground/follow-mouse/demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/follow-mouse/demo.gif -------------------------------------------------------------------------------- /playground/follow-mouse/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Doom Fire Effect 4 | 28 | 29 | 30 | 31 | 32 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /playground/follow-mouse/star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/follow-mouse/star.png -------------------------------------------------------------------------------- /playground/gdscript-doom-fire/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.md5: -------------------------------------------------------------------------------- 1 | source_md5="8dd9ff1eebf38898a54579d8c01b0a88" 2 | dest_md5="da70afec3c66d4e872db67f808e12edb" 3 | 4 | -------------------------------------------------------------------------------- /playground/gdscript-doom-fire/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/gdscript-doom-fire/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex -------------------------------------------------------------------------------- /playground/gdscript-doom-fire/Fire.gd: -------------------------------------------------------------------------------- 1 | extends Node 2 | 3 | 4 | var FireMap = preload("res://core/FireMap.gd").new() 5 | var Render = preload("res://core/Render.gd").new() 6 | 7 | 8 | func _ready(): 9 | FireMap.target = Render 10 | 11 | add_child(FireMap) 12 | add_child(Render) 13 | 14 | FireMap.max_id = $bar.value 15 | 16 | 17 | func _on_bar_value_changed(value): 18 | FireMap.max_id = value -------------------------------------------------------------------------------- /playground/gdscript-doom-fire/Fire.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://Fire.gd" type="Script" id=1] 4 | 5 | [node name="Fire" type="Node"] 6 | script = ExtResource( 1 ) 7 | 8 | [node name="bar" type="HScrollBar" parent="."] 9 | margin_left = 340.0 10 | margin_top = 520.0 11 | margin_right = 720.0 12 | margin_bottom = 570.0 13 | max_value = 36.0 14 | step = 1.0 15 | [connection signal="value_changed" from="bar" to="." method="_on_bar_value_changed"] 16 | -------------------------------------------------------------------------------- /playground/gdscript-doom-fire/README.md: -------------------------------------------------------------------------------- 1 | # gdscript-doom-fire 2 | 3 | A simple GDScript doom fire implementation. 4 | 5 | Download Godot Engine and have fun! godotengine.org 6 | 7 | **Godot Engine v3.1.2 RC1**. 8 | -------------------------------------------------------------------------------- /playground/gdscript-doom-fire/default_env.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Environment" load_steps=2 format=2] 2 | 3 | [sub_resource type="ProceduralSky" id=1] 4 | 5 | [resource] 6 | background_mode = 2 7 | background_sky = SubResource( 1 ) 8 | -------------------------------------------------------------------------------- /playground/gdscript-doom-fire/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/gdscript-doom-fire/icon.png -------------------------------------------------------------------------------- /playground/gdscript-doom-fire/icon.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://icon.png" 13 | dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /playground/gdscript-doom-fire/project.godot: -------------------------------------------------------------------------------- 1 | ; Engine configuration file. 2 | ; It's best edited using the editor UI and not directly, 3 | ; since the parameters that go here are not all obvious. 4 | ; 5 | ; Format: 6 | ; [section] ; section goes between [] 7 | ; param=value ; assign values to parameters 8 | 9 | config_version=4 10 | 11 | _global_script_classes=[ ] 12 | _global_script_class_icons={ 13 | 14 | } 15 | 16 | [application] 17 | 18 | config/name="gdscript-doom-fire" 19 | run/main_scene="res://Fire.tscn" 20 | config/icon="res://icon.png" 21 | 22 | [debug] 23 | 24 | gdscript/warnings/enable=false 25 | 26 | [display] 27 | 28 | window/stretch/mode="2d" 29 | window/stretch/aspect="keep" 30 | 31 | [rendering] 32 | 33 | environment/default_environment="res://default_env.tres" 34 | -------------------------------------------------------------------------------- /playground/godot-shaders-doom-fire/.gitignore: -------------------------------------------------------------------------------- 1 | .import/ 2 | *.import 3 | -------------------------------------------------------------------------------- /playground/godot-shaders-doom-fire/default_env.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Environment" load_steps=2 format=2] 2 | 3 | [sub_resource type="ProceduralSky" id=1] 4 | 5 | [resource] 6 | background_mode = 2 7 | background_sky = SubResource( 1 ) 8 | -------------------------------------------------------------------------------- /playground/godot-shaders-doom-fire/pal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/godot-shaders-doom-fire/pal.png -------------------------------------------------------------------------------- /playground/godot-shaders-doom-fire/readme.md: -------------------------------------------------------------------------------- 1 | # Doom fire in Godot 2 | 3 | Simple Doom fire implementation using shaders. Works in Godot 3.3.2. 4 | -------------------------------------------------------------------------------- /playground/golang-ebiten/README.md: -------------------------------------------------------------------------------- 1 | # Golang 2 | 3 | Golang version with [ebiten 2D game library](https://github.com/hajimehoshi/ebiten) 4 | -------------------------------------------------------------------------------- /playground/implementation-with-canvas-manual-variable-dimension-and-power/README.md: -------------------------------------------------------------------------------- 1 | # Doom Fire Algorithm 2 | 3 | Version implemented using multidimensional vector and HTML5 canvas to rendering. Also added options to increments or decrements the fire power, píxel dimension, canvas width and canvas hight. 4 | 5 | ## Preview 6 | 7 |

8 | Preview 9 |

10 | 11 | ## How to implement 12 | 13 |

14 | 15 | How to implement 16 | 17 |

18 | 19 | ## Original Author 20 | 21 | | [
@filipedeschamps](https://github.com/filipedeschamps) | 22 | | :---: | 23 | 24 | ## Author of this version 25 | 26 | | [
@gustavo-tp](https://github.com/gustavo-tp) | 27 | | :---: | 28 | -------------------------------------------------------------------------------- /playground/implementation-with-canvas-manual-variable-dimension-and-power/preview.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/implementation-with-canvas-manual-variable-dimension-and-power/preview.gif -------------------------------------------------------------------------------- /playground/java-graphics2d-implementation/README.md: -------------------------------------------------------------------------------- 1 | 2 | # doom-fire-algorithm - JAVA 3 | 4 | Creating the fire effect from DOOM in Java using Graphics2D API. 5 | 6 | ## Requirements: 7 | 8 | - Java 8 9 | - Maven 10 | 11 | ## Running: 12 | 13 | - Make sure you have Java 8 and Maven installed in your machine. 14 | - Clone the repository 15 | - `git clone https://github.com/fabiodelabruna/doom-fire-algorithm.git` 16 | - Enter the directory 17 | - `cd playground/java-graphics2d-implementation/` 18 | - Build the project 19 | - `mvn install` 20 | - Run the program 21 | - `mvn exec:java` 22 | 23 | -------------------------------------------------------------------------------- /playground/java-graphics2d-implementation/src/main/java/doomfire/Main.java: -------------------------------------------------------------------------------- 1 | package doomfire; 2 | 3 | import javax.swing.SwingUtilities; 4 | 5 | import doomfire.gui.MainWindow; 6 | 7 | public class Main { 8 | 9 | public static void main(String[] args) throws InterruptedException { 10 | SwingUtilities.invokeLater(() -> { 11 | MainWindow window = new MainWindow(); 12 | window.setVisible(true); 13 | }); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /playground/java-graphics2d-implementation/src/main/java/doomfire/gui/MainWindow.java: -------------------------------------------------------------------------------- 1 | package doomfire.gui; 2 | 3 | import java.awt.BorderLayout; 4 | 5 | import javax.swing.JFrame; 6 | 7 | public class MainWindow extends JFrame { 8 | 9 | private static final long serialVersionUID = 1L; 10 | 11 | public MainWindow() { 12 | setTitle("Java Doom Fire!!!"); 13 | setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 14 | setSize(800, 430); 15 | 16 | FirePanel firePanel = new FirePanel(200, 100); 17 | getContentPane().add(firePanel, BorderLayout.CENTER); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /playground/java-libgdx-implementation/README.md: -------------------------------------------------------------------------------- 1 | 2 | # doom-fire-algorithm - LIBGDX (Java) 3 | 4 | Creating the fire effect from DOOM in Java using [LibGdx](https://github.com/libgdx/libgdx). 5 | 6 | ## Requirements: 7 | 8 | - Java 8 9 | - Maven 10 | 11 | ## Running: 12 | 13 | - Make sure you have Java 8 and Maven installed in your machine. 14 | - Clone the repository 15 | - `git clone https://github.com/osmarjunior/doom-fire-algorithm.git` 16 | - Enter the directory 17 | - `cd playground/java-libgdx-implementation/` 18 | - Build the project 19 | - `mvn install` 20 | - Run the program 21 | - `mvn exec:java` 22 | 23 | -------------------------------------------------------------------------------- /playground/java-libgdx-implementation/src/main/java/doomfire/Main.java: -------------------------------------------------------------------------------- 1 | package doomfire; 2 | 3 | import com.badlogic.gdx.backends.lwjgl.LwjglApplication; 4 | import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration; 5 | 6 | import doomfire.gui.MainWindow; 7 | 8 | public class Main { 9 | 10 | public static void main(String[] args) { 11 | LwjglApplicationConfiguration cfg = new LwjglApplicationConfiguration(); 12 | cfg.title = "Doom Fire"; 13 | cfg.width = 800; 14 | cfg.height = 600; 15 | 16 | new LwjglApplication(new MainWindow(), cfg); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /playground/lua-love2d-implementation/DoomFire/colors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/lua-love2d-implementation/DoomFire/colors.png -------------------------------------------------------------------------------- /playground/lua-love2d-implementation/DoomFire/conf.lua: -------------------------------------------------------------------------------- 1 | function love.conf(t) 2 | t.title = "Doom Fire" 3 | t.author = "WesleyCSJ" 4 | t.version = "11.1" 5 | t.window.width = 400 6 | t.window.height = 400 7 | end 8 | -------------------------------------------------------------------------------- /playground/lua-love2d-implementation/README.MD: -------------------------------------------------------------------------------- 1 | ## Doom Fire Algorithm Lua/Love2D Implementation 2 | 3 | You should have Love2D framework installed in your system before run this code. 4 | 5 | [Love2D](https://love2d.org/) 6 | 7 | After love2d installed in your system, run love in your terminal and passing the folder name as a argument. 8 | 9 | If you're using Powershell, it should be like: .\love.exe DoomFire 10 | 11 | If you're using a Linux Terminal, it should be like: love DoomFire 12 | 13 | [Working Video](https://www.youtube.com/watch?v=TNeFsGlwI8Q) 14 | 15 | ## Author 16 | 17 | [WesleyCSJ](https://github.com/wesleycsj) -------------------------------------------------------------------------------- /playground/meteor/README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 | 5 | # Meteor 6 | 7 | - [Click here for the Demo page](https://filipedeschamps.github.io/doom-fire-algorithm/playground/meteor/) 8 | 9 | ## Author 10 | 11 | | [
@felipe-pita](https://github.com/felipe-pita) | 12 | | :---: | -------------------------------------------------------------------------------- /playground/meteor/demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/meteor/demo.gif -------------------------------------------------------------------------------- /playground/meteor/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Meteor - O mundo ta acabando bixo! 6 | 7 | 8 | 9 | 10 |
11 |
12 | 13 |
14 |
15 | 16 | 17 | -------------------------------------------------------------------------------- /playground/new-structure-with-parcel-bundler/.gitignore: -------------------------------------------------------------------------------- 1 | .cache 2 | node_modules 3 | package-lock.json 4 | dist -------------------------------------------------------------------------------- /playground/new-structure-with-parcel-bundler/README.md: -------------------------------------------------------------------------------- 1 | # doom-fire-algorithm: new structure using parcel-bundler 2 | 3 | This is a version of the doom-fire-algorithm implementation that uses a new file structure to make it easier for users to extend and to implement their versions using this as a template. 4 | 5 | There are 2 main differences here from the original approach: 6 | 7 | 1. We use a bundler called [Parcel bundler](https://parceljs.org) which is a no config bundler that either transpiles newest JS and also compiles other languages to JS, such as Rust, ReasonML, TS and a couple other cool languages. 8 | 9 | 2. I've split the code into different modules and mainly added a new config.json file that is responsible for the default configurations such as the size of the rendered content and the renderer engine to be used. 10 | 11 | 12 | ## Usage 13 | 14 | 1. `$ npm install` 15 | 2. `$ npm start` 16 | 17 | And that's it, this will automatically open your chrome at localhost:1234 serving the file with hot-reload. -------------------------------------------------------------------------------- /playground/new-structure-with-parcel-bundler/demo/Cargo.cb4bfa5f.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "doom-fire-algorithm" 3 | version = "0.1.0" 4 | authors = ["Luciano "] 5 | 6 | [lib] 7 | crate-type = ["cdylib"] 8 | 9 | [dependencies.wasm-bindgen] 10 | version = "0.2" 11 | features = ["serde-serialize"] 12 | 13 | [dependencies.web-sys] 14 | version = "0.3" 15 | features = [ 16 | 'console', 17 | 'Document', 18 | 'Element', 19 | 'HtmlElement', 20 | 'Node', 21 | 'Window' 22 | ] 23 | 24 | [dependencies] 25 | serde = "1.0.59" 26 | serde_derive = "1.0.59" 27 | lazy_static = "1.2.0" -------------------------------------------------------------------------------- /playground/new-structure-with-parcel-bundler/demo/doom_fire_algorithm_bg.918dd76b.wasm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/new-structure-with-parcel-bundler/demo/doom_fire_algorithm_bg.918dd76b.wasm -------------------------------------------------------------------------------- /playground/new-structure-with-parcel-bundler/demo/index.html: -------------------------------------------------------------------------------- 1 | Doom Fire Effect

Doom Fire Effect

using

https://github.com/filipedeschamps/doom-fire-algorithm

Renderers

Engines

-------------------------------------------------------------------------------- /playground/new-structure-with-parcel-bundler/demo/main.07273f20.css: -------------------------------------------------------------------------------- 1 | body{background-color:#63431c;display:flex;justify-content:center;align-items:center}h1{font-size:35px}h1,h2{font-family:impact;margin:0;text-shadow:0 -1px 0 rgba(255,225,31,.4);text-transform:uppercase}h2{font-size:22px;color:#fff}#fireCanvas{margin:10px}table{border-collapse:collapse}table,td{border:1px solid #000}td{width:32px;height:32px;color:#fff;text-align:center;vertical-align:center;font-family:arial;font-size:10px;position:relative;font-weight:700}td.pixel{width:4px;height:4px;border:0}.pixel-index{font-size:7px;display:inline-block;position:absolute;top:1px;right:1px;color:#927450}a{color:#fff;font-size:10px;font-family:arial}.margin{margin:5px}section>h1{font-size:24px} -------------------------------------------------------------------------------- /playground/new-structure-with-parcel-bundler/demo/main.07273f20.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":[],"names":[],"mappings":"","file":"main.07273f20.map","sourceRoot":"../src"} -------------------------------------------------------------------------------- /playground/new-structure-with-parcel-bundler/src/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "firePixelsArray": [], 3 | "fireWidth": 45, 4 | "fireHeight": 30, 5 | "debug": false, 6 | "interval": 50, 7 | "renderTargetId": "#fireCanvas", 8 | "render": "canvas", 9 | "engine": "js" 10 | } -------------------------------------------------------------------------------- /playground/new-structure-with-parcel-bundler/src/engines/index.js: -------------------------------------------------------------------------------- 1 | import * as rust from './rust' 2 | import * as js from './js' 3 | 4 | export { 5 | rust, 6 | js, 7 | } 8 | -------------------------------------------------------------------------------- /playground/new-structure-with-parcel-bundler/src/engines/js/index.js: -------------------------------------------------------------------------------- 1 | import { createFireSource } from '../../scripts/handlers' 2 | import { createFireDataStructure, calculateFirePropagation } from './fire' 3 | import renders from '../../renders' 4 | 5 | export function start (config) { 6 | if (!config.firePixelsArray.length) { 7 | config = createFireDataStructure(config) 8 | config = createFireSource(config) 9 | } 10 | config = calculateFirePropagation(config) 11 | return renders[config.render](config) 12 | } -------------------------------------------------------------------------------- /playground/new-structure-with-parcel-bundler/src/engines/rust/.gitignore: -------------------------------------------------------------------------------- 1 | bin 2 | pkg 3 | target 4 | Cargo.lock -------------------------------------------------------------------------------- /playground/new-structure-with-parcel-bundler/src/engines/rust/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "doom-fire-algorithm" 3 | version = "0.1.0" 4 | authors = ["Luciano "] 5 | 6 | [lib] 7 | crate-type = ["cdylib"] 8 | 9 | [dependencies.wasm-bindgen] 10 | version = "0.2" 11 | features = ["serde-serialize"] 12 | 13 | [dependencies.web-sys] 14 | version = "0.3" 15 | features = [ 16 | 'console', 17 | 'Document', 18 | 'Element', 19 | 'HtmlElement', 20 | 'Node', 21 | 'Window' 22 | ] 23 | 24 | [dependencies] 25 | serde = "1.0.59" 26 | serde_derive = "1.0.59" 27 | lazy_static = "1.2.0" -------------------------------------------------------------------------------- /playground/new-structure-with-parcel-bundler/src/engines/rust/index.js: -------------------------------------------------------------------------------- 1 | import { main } from '../rust/Cargo.toml' 2 | import renders from '../../renders' 3 | 4 | function start (config) { 5 | const { fireWidth, fireHeight, debug, renderTargetId, render } = config 6 | let firePixelsArray = main({ fireWidth, fireHeight, debug, renderTargetId, firePixelsArray: [] }) 7 | return renders[render]({ ...config, firePixelsArray }) 8 | } 9 | 10 | export { 11 | start, 12 | } 13 | -------------------------------------------------------------------------------- /playground/new-structure-with-parcel-bundler/src/renders/index.js: -------------------------------------------------------------------------------- 1 | import { renderFire as table } from './table' 2 | import { renderFire as canvas } from './canvas' 3 | import { renderFire as tableDebug } from './table-debug' 4 | import { renderFire as pixi } from './pixi' 5 | 6 | export default { 7 | table, 8 | canvas, 9 | ['table-debug']: tableDebug, 10 | pixi, 11 | } -------------------------------------------------------------------------------- /playground/new-structure-with-parcel-bundler/src/renders/table-debug.js: -------------------------------------------------------------------------------- 1 | import fireColorsPalette from '../scripts/colors' 2 | 3 | function generateRenderedFireHtml (config) { 4 | let html = '' 5 | 6 | for (let row = 0; row < config.fireHeight; row++) { 7 | html += '' 8 | for (let column = 0; column < config.fireWidth; column++) { 9 | const pixelIndex = column + (config.fireWidth * row) 10 | const fireIntensity = config.firePixelsArray[pixelIndex] 11 | const {r, g, b} = fireColorsPalette[fireIntensity] 12 | const colorString = `${r},${g},${b}` 13 | 14 | html += ` 15 | 19 | ` 20 | } 21 | html += '' 22 | } 23 | 24 | html += '
16 |
${pixelIndex}
17 |
${fireIntensity}
18 |
' 25 | return html 26 | } 27 | 28 | export function renderFire (config, htmlGenerator = generateRenderedFireHtml) { 29 | document.querySelector(config.renderTargetId).innerHTML = htmlGenerator(config) 30 | } -------------------------------------------------------------------------------- /playground/new-structure-with-parcel-bundler/src/renders/table.js: -------------------------------------------------------------------------------- 1 | import fireColorsPalette from '../scripts/colors' 2 | 3 | function generateRenderedFireHtml (config) { 4 | let html = '' 5 | 6 | for (let row = 0; row < config.fireHeight; row++) { 7 | html += '' 8 | for (let column = 0; column < config.fireWidth; column++) { 9 | const pixelIndex = column + (config.fireWidth * row) 10 | const fireIntensity = config.firePixelsArray[pixelIndex] 11 | const {r, g, b} = fireColorsPalette[fireIntensity] 12 | const colorString = `${r},${g},${b}` 13 | html += `` 14 | } 15 | html += '' 16 | } 17 | html += '
' 18 | return html 19 | } 20 | 21 | export function renderFire (config, htmlGenerator = generateRenderedFireHtml) { 22 | document.querySelector(config.renderTargetId).innerHTML = htmlGenerator(config) 23 | } -------------------------------------------------------------------------------- /playground/non-uniform-canvas-2d-array-implementation/README.md: -------------------------------------------------------------------------------- 1 | ## A non-uniform fire effect implementation 2 | 3 | This was made with canvas (the debug mode is also using it), requestAnimationFrame and a two-dimensional array. 4 | 5 | The thing is: I've separated the random number for the column index giving it a value between `windDelta` (which is 2 by default) and `-windDelta`, so the idea is that the pixel could update its left or right neighbors, causing this little chaotic effect (slightly different form the first implementation without the wind): 6 | 7 | ![doom fire gif](https://github.com/caioferrarezi/doom-fire-algorithm/blob/master/playground/non-uniform-canvas-2d-array-implementation/doom.gif?raw=true) 8 | -------------------------------------------------------------------------------- /playground/non-uniform-canvas-2d-array-implementation/controls.js: -------------------------------------------------------------------------------- 1 | const buttons = document.querySelectorAll('#controls button'); 2 | 3 | const operation = { 4 | decrease() { 5 | decayDelta = decayDelta < 12 ? decayDelta + 1 : decayDelta; 6 | }, 7 | min() { 8 | decayDelta = 10; 9 | }, 10 | debug() { 11 | debug = !debug; 12 | 13 | pixelSize = debug ? 10 : 5; 14 | 15 | canvas.width = fireWidth * pixelSize; 16 | canvas.height = fireHeight * pixelSize; 17 | }, 18 | max() { 19 | decayDelta = 2; 20 | }, 21 | increase() { 22 | decayDelta = decayDelta > 2 ? decayDelta - 1 : decayDelta; 23 | } 24 | } 25 | 26 | buttons.forEach(button => { 27 | button.addEventListener('click', handleOperation); 28 | }) 29 | 30 | function handleOperation({ target }) { 31 | operation[target.id](); 32 | } 33 | -------------------------------------------------------------------------------- /playground/non-uniform-canvas-2d-array-implementation/doom.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/non-uniform-canvas-2d-array-implementation/doom.gif -------------------------------------------------------------------------------- /playground/pagarme-logo-on-fire/README.md: -------------------------------------------------------------------------------- 1 | # Doom Fire Algorithm 2 | 3 | Fire effect from Doom implemented in plain JavaScript and using Canvas's drawRect to render the final effect. 4 | Also, Pagar.me's logo is on fire. For whatever reason. 5 | 6 | - [Click here for the Demo page](https://filipedeschamps.github.io/doom-fire-algorithm/playground/pagarme-logo-on-fire/) 7 | -------------------------------------------------------------------------------- /playground/psp-homebrew-oslib-implementation/README.MD: -------------------------------------------------------------------------------- 1 | # Doom Fire Algorithm - PSP Homebrew Implementation 2 | 3 | This homebrew was make with the community pspsdk and oslibmod framework. For more information, see links bellow. 4 | 5 | https://github.com/pmlopes/minpsp 6 | 7 | https://github.com/dogo/oslibmodv2 8 | 9 | ## Running 10 | 11 | After psp toolchain installed in your system, just type make in your terminal and copy EBOOT.php to PSP/GAME/Doom folder 12 | 13 | ```sh 14 | make 15 | ``` 16 | 17 | ### Running in PPSSPP Emulator 18 | [![DEMO](https://img.youtube.com/vi/CJvuF-B0K5k/0.jpg)](https://www.youtube.com/watch?v=CJvuF-B0K5k) 19 | 20 | ### Running in PS Vita Device 21 | [![DEMO](https://img.youtube.com/vi/DIINXrpCoto/0.jpg)](https://www.youtube.com/watch?v=DIINXrpCoto) 22 | 23 | ## Author 24 | 25 | [Marcos Paulo Farias](https://github.com/mrcsxsiq) -------------------------------------------------------------------------------- /playground/psp-homebrew-oslib-implementation/release/EBOOT.PBP: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/psp-homebrew-oslib-implementation/release/EBOOT.PBP -------------------------------------------------------------------------------- /playground/psp-homebrew-oslib-implementation/src/ICON0.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/psp-homebrew-oslib-implementation/src/ICON0.PNG -------------------------------------------------------------------------------- /playground/psp-homebrew-oslib-implementation/src/makefile: -------------------------------------------------------------------------------- 1 | TARGET = doomfireeffect 2 | OBJS = main.o 3 | 4 | #To build for custom firmware: 5 | BUILD_PRX = 1 6 | PSP_FW_VERSION=550 7 | 8 | CFLAGS = -O2 -g -G0 -Wall 9 | CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti 10 | ASFLAGS = $(CFLAGS) 11 | LIBDIR = 12 | 13 | MYLIBS= 14 | STDLIBS= -losl -lpng -lz \ 15 | -lpsphprm -lpspsdk -lpspctrl -lpspumd -lpsprtc -lpsppower -lpspgu -lpspgum -lpspaudiolib -lpspaudio -lpsphttp -lpspssl -lpspwlan \ 16 | -lpspnet_adhocmatching -lpspnet_adhoc -lpspnet_adhocctl -lm -ljpeg 17 | LIBS=$(STDLIBS) $(MYLIBS) 18 | 19 | LDFLAGS = 20 | EXTRA_TARGETS = EBOOT.PBP 21 | PSP_EBOOT_TITLE = Doom Fire Effect 22 | PSP_EBOOT_ICON = ICON0.PNG 23 | PSPSDK=$(shell psp-config --pspsdk-path) 24 | include $(PSPSDK)/lib/build.mak 25 | -------------------------------------------------------------------------------- /playground/python3-kivy/fire.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/python3-kivy/fire.gif -------------------------------------------------------------------------------- /playground/python3-kivy/requirements.txt: -------------------------------------------------------------------------------- 1 | Cython 2 | pygame 3 | kivy.deps.sdl2 4 | kivy.deps.glew 5 | kivy.deps.gstreamer 6 | kivy.deps.angle 7 | kivy==1.10.0 -------------------------------------------------------------------------------- /playground/pythonic-doom-fire/.gitignore: -------------------------------------------------------------------------------- 1 | *.egg-info/ 2 | build/ 3 | dist/ 4 | venv 5 | -------------------------------------------------------------------------------- /playground/pythonic-doom-fire/pythonic-doom-fire-blue.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/pythonic-doom-fire/pythonic-doom-fire-blue.gif -------------------------------------------------------------------------------- /playground/pythonic-doom-fire/pythonic-doom-fire.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/pythonic-doom-fire/pythonic-doom-fire.gif -------------------------------------------------------------------------------- /playground/pythonic-doom-fire/pythonic-doom-fire/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/pythonic-doom-fire/pythonic-doom-fire/__init__.py -------------------------------------------------------------------------------- /playground/pythonic-doom-fire/pythonic-doom-fire/example/doom_fire_pygame.py: -------------------------------------------------------------------------------- 1 | from os.path import dirname, abspath, join 2 | import pygame 3 | import sys 4 | doom_fire_pygame_dir = dirname(abspath(__file__)) 5 | sys.path.append(join(doom_fire_pygame_dir, '..')) 6 | from doom_fire import DoomFire 7 | 8 | class DoomFirePygame(DoomFire): 9 | def render(self, ctx): 10 | ps = self.pixel_size 11 | for i in range(self.height): 12 | for j in range(self.width): 13 | pixel_index = i * self.width + j 14 | color_intensity = self.pixels_array[pixel_index] 15 | color = self.color_palette.get_color(color_intensity) 16 | pixel_rect = (j * ps, i * ps, ps, ps) 17 | pygame.draw.rect(ctx, color, pixel_rect, 0) 18 | -------------------------------------------------------------------------------- /playground/pythonic-doom-fire/setup.py: -------------------------------------------------------------------------------- 1 | from setuptools import setup 2 | 3 | setup( 4 | name='pythonic-doom-fire', 5 | version='1.0', 6 | description='A Python Doom fire algorithm implementation', 7 | author='Filipe Alves', 8 | author_email='filipe.alvesdefernando@hotmail.com', 9 | packages=['pythonic-doom-fire'], 10 | install_requires=['pygame'], 11 | ) 12 | -------------------------------------------------------------------------------- /playground/random-walker/README.md: -------------------------------------------------------------------------------- 1 | # Random Walker 2 | Random Burning Walker implemented in plain JavaScript and using Canvas's drawRect to render the final effect and with some Gravity Controls. 3 | 4 | - [Click here for the Demo page](https://filipedeschamps.github.io/doom-fire-algorithm/playground/random-walker/) 5 | 6 | 7 | ### Original implementation 8 | - [Implementation using plain JavaScript and Canvas's `drawRect` to render](https://filipedeschamps.github.io/doom-fire-algorithm/playground/render-with-canvas-draw-rect/) ([@leocavalcante](https://github.com/leocavalcante)) 9 | -------------------------------------------------------------------------------- /playground/react-implementation/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /playground/react-implementation/README.md: -------------------------------------------------------------------------------- 1 | Organization of Components: 2 | organization of components 3 | 4 | ------------------------------ 5 | 6 | OBS: The node_modules folder is listed in .gitignore, so it is not in git because it is very heavy. 7 | Additional libraries, other than those created by create-react-app, are listed below, if necessary, use the command lines to install them in the node_module folder (npm commands listed below as well). 8 | 9 | ------------------------------ 10 | 11 | Semantic UI: 12 | Is a library used to improve css production, comes with cool styles 13 | 14 | documentation: 15 | https://semantic-ui.com/ 16 | 17 | how to use: 18 | go to this site: https://cdnjs.com/libraries/semantic-ui and get the 'semantic.min.css' link 19 | add this link in the file ../public/index.html in a tag to be able to use it, like this: 20 | ```html 21 | 22 | ``` -------------------------------------------------------------------------------- /playground/react-implementation/components_organization.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/react-implementation/components_organization.PNG -------------------------------------------------------------------------------- /playground/react-implementation/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "doom-fire-react", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "react": "^16.8.3", 7 | "react-dom": "^16.8.3", 8 | "react-scripts": "2.1.5" 9 | }, 10 | "scripts": { 11 | "start": "react-scripts start", 12 | "build": "react-scripts build", 13 | "test": "react-scripts test", 14 | "eject": "react-scripts eject" 15 | }, 16 | "eslintConfig": { 17 | "extends": "react-app" 18 | }, 19 | "browserslist": [ 20 | ">0.2%", 21 | "not dead", 22 | "not ie <= 11", 23 | "not op_mini all" 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /playground/react-implementation/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/react-implementation/public/favicon.ico -------------------------------------------------------------------------------- /playground/react-implementation/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | } 10 | ], 11 | "start_url": ".", 12 | "display": "standalone", 13 | "theme_color": "#000000", 14 | "background_color": "#ffffff" 15 | } 16 | -------------------------------------------------------------------------------- /playground/react-implementation/src/components/App.css: -------------------------------------------------------------------------------- 1 | .container-center { 2 | display: flex; 3 | justify-content: center; 4 | align-items: center; 5 | height: 100vh; 6 | } -------------------------------------------------------------------------------- /playground/react-implementation/src/components/ButtonContent.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | const ButtonContent = (props) => { 4 | return ( 5 |
6 | 7 | 8 | 9 | 10 |
11 | 15 |
16 | ); 17 | }; 18 | 19 | export default ButtonContent; -------------------------------------------------------------------------------- /playground/react-implementation/src/components/DoomTd.css: -------------------------------------------------------------------------------- 1 | td { 2 | width: 50px; 3 | height: 50px; 4 | border: 1px solid #000; 5 | text-align: center; 6 | vertical-align: center; 7 | font-family: monospace; 8 | font-size: 18px; 9 | position: relative; 10 | } 11 | td.pixel { 12 | width: 4px; 13 | height: 4px; 14 | border: 0; 15 | } 16 | .pixel-index { 17 | font-size: 7px; 18 | display: inline-block; 19 | position: absolute; 20 | top: 1px; 21 | right: 1px; 22 | color: #927450; 23 | } -------------------------------------------------------------------------------- /playground/react-implementation/src/components/DoomTr.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | const DoomTr = (props) => { 4 | return ( 5 | 6 | {props.children} 7 | 8 | ); 9 | }; 10 | 11 | export default DoomTr; -------------------------------------------------------------------------------- /playground/react-implementation/src/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import App from './components/App.js' 4 | 5 | ReactDOM.render(, document.querySelector('#root')); -------------------------------------------------------------------------------- /playground/react-native-doom-fire/.buckconfig: -------------------------------------------------------------------------------- 1 | 2 | [android] 3 | target = Google Inc.:Google APIs:23 4 | 5 | [maven_repositories] 6 | central = https://repo1.maven.org/maven2 7 | -------------------------------------------------------------------------------- /playground/react-native-doom-fire/.gitattributes: -------------------------------------------------------------------------------- 1 | *.pbxproj -text 2 | -------------------------------------------------------------------------------- /playground/react-native-doom-fire/.gitignore: -------------------------------------------------------------------------------- 1 | # OSX 2 | # 3 | .DS_Store 4 | 5 | # Xcode 6 | # 7 | build/ 8 | *.pbxuser 9 | !default.pbxuser 10 | *.mode1v3 11 | !default.mode1v3 12 | *.mode2v3 13 | !default.mode2v3 14 | *.perspectivev3 15 | !default.perspectivev3 16 | xcuserdata 17 | *.xccheckout 18 | *.moved-aside 19 | DerivedData 20 | *.hmap 21 | *.ipa 22 | *.xcuserstate 23 | project.xcworkspace 24 | 25 | # Android/IntelliJ 26 | # 27 | build/ 28 | .idea 29 | .gradle 30 | local.properties 31 | *.iml 32 | 33 | # node.js 34 | # 35 | node_modules/ 36 | npm-debug.log 37 | yarn-error.log 38 | 39 | # BUCK 40 | buck-out/ 41 | \.buckd/ 42 | *.keystore 43 | 44 | # fastlane 45 | # 46 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 47 | # screenshots whenever they are needed. 48 | # For more information about the recommended setup visit: 49 | # https://docs.fastlane.tools/best-practices/source-control/ 50 | 51 | */fastlane/report.xml 52 | */fastlane/Preview.html 53 | */fastlane/screenshots 54 | 55 | # Bundle artifact 56 | *.jsbundle 57 | -------------------------------------------------------------------------------- /playground/react-native-doom-fire/.watchmanconfig: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /playground/react-native-doom-fire/README.md: -------------------------------------------------------------------------------- 1 | 2 | # React-native Doom Fire Algorithm 3 | ## Preview: 4 | 5 | 6 | ## Notes: 7 | I haven't tested on IOS because I need a Mac to do this. 8 | 9 | ## Author 10 | 11 | | [
@SamuelHiroyuki](https://github.com/SamuelHiroyuki) | 12 | | :---: | 13 | 14 | 15 | -------------------------------------------------------------------------------- /playground/react-native-doom-fire/__tests__/App-test.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @format 3 | */ 4 | 5 | import 'react-native'; 6 | import React from 'react'; 7 | import App from '../App'; 8 | 9 | // Note: test renderer must be required after react-native. 10 | import renderer from 'react-test-renderer'; 11 | 12 | it('renders correctly', () => { 13 | renderer.create(); 14 | }); 15 | -------------------------------------------------------------------------------- /playground/react-native-doom-fire/android/app/build_defs.bzl: -------------------------------------------------------------------------------- 1 | """Helper definitions to glob .aar and .jar targets""" 2 | 3 | def create_aar_targets(aarfiles): 4 | for aarfile in aarfiles: 5 | name = "aars__" + aarfile[aarfile.rindex("/") + 1:aarfile.rindex(".aar")] 6 | lib_deps.append(":" + name) 7 | android_prebuilt_aar( 8 | name = name, 9 | aar = aarfile, 10 | ) 11 | 12 | def create_jar_targets(jarfiles): 13 | for jarfile in jarfiles: 14 | name = "jars__" + jarfile[jarfile.rindex("/") + 1:jarfile.rindex(".jar")] 15 | lib_deps.append(":" + name) 16 | prebuilt_jar( 17 | name = name, 18 | binary_jar = jarfile, 19 | ) 20 | -------------------------------------------------------------------------------- /playground/react-native-doom-fire/android/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /playground/react-native-doom-fire/android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /playground/react-native-doom-fire/android/app/src/debug/res/xml/react_native_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | localhost 5 | 10.0.2.2 6 | 10.0.3.2 7 | 8 | 9 | -------------------------------------------------------------------------------- /playground/react-native-doom-fire/android/app/src/main/java/com/doomfire/MainActivity.java: -------------------------------------------------------------------------------- 1 | package com.doomfire; 2 | 3 | import com.facebook.react.ReactActivity; 4 | 5 | public class MainActivity extends ReactActivity { 6 | 7 | /** 8 | * Returns the name of the main component registered from JavaScript. 9 | * This is used to schedule rendering of the component. 10 | */ 11 | @Override 12 | protected String getMainComponentName() { 13 | return "DoomFire"; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /playground/react-native-doom-fire/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/react-native-doom-fire/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /playground/react-native-doom-fire/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/react-native-doom-fire/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /playground/react-native-doom-fire/android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/react-native-doom-fire/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /playground/react-native-doom-fire/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/react-native-doom-fire/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /playground/react-native-doom-fire/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/react-native-doom-fire/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /playground/react-native-doom-fire/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/react-native-doom-fire/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /playground/react-native-doom-fire/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/react-native-doom-fire/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /playground/react-native-doom-fire/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/react-native-doom-fire/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /playground/react-native-doom-fire/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/react-native-doom-fire/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /playground/react-native-doom-fire/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/react-native-doom-fire/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /playground/react-native-doom-fire/android/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | DoomFire 3 | 4 | -------------------------------------------------------------------------------- /playground/react-native-doom-fire/android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /playground/react-native-doom-fire/android/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | ext { 5 | buildToolsVersion = "28.0.3" 6 | minSdkVersion = 16 7 | compileSdkVersion = 28 8 | targetSdkVersion = 28 9 | supportLibVersion = "28.0.0" 10 | } 11 | repositories { 12 | google() 13 | jcenter() 14 | } 15 | dependencies { 16 | classpath 'com.android.tools.build:gradle:3.3.1' 17 | 18 | // NOTE: Do not place your application dependencies here; they belong 19 | // in the individual module build.gradle files 20 | } 21 | } 22 | 23 | allprojects { 24 | repositories { 25 | mavenLocal() 26 | google() 27 | jcenter() 28 | maven { 29 | // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm 30 | url "$rootDir/../node_modules/react-native/android" 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /playground/react-native-doom-fire/android/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true 19 | -------------------------------------------------------------------------------- /playground/react-native-doom-fire/android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/react-native-doom-fire/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /playground/react-native-doom-fire/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | zipStoreBase=GRADLE_USER_HOME 4 | zipStorePath=wrapper/dists 5 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip 6 | -------------------------------------------------------------------------------- /playground/react-native-doom-fire/android/keystores/BUCK: -------------------------------------------------------------------------------- 1 | keystore( 2 | name = "debug", 3 | properties = "debug.keystore.properties", 4 | store = "debug.keystore", 5 | visibility = [ 6 | "PUBLIC", 7 | ], 8 | ) 9 | -------------------------------------------------------------------------------- /playground/react-native-doom-fire/android/keystores/debug.keystore.properties: -------------------------------------------------------------------------------- 1 | key.store=debug.keystore 2 | key.alias=androiddebugkey 3 | key.store.password=android 4 | key.alias.password=android 5 | -------------------------------------------------------------------------------- /playground/react-native-doom-fire/android/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'DoomFire' 2 | 3 | include ':app' 4 | -------------------------------------------------------------------------------- /playground/react-native-doom-fire/app.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "DoomFire", 3 | "displayName": "DoomFire" 4 | } -------------------------------------------------------------------------------- /playground/react-native-doom-fire/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: ['module:metro-react-native-babel-preset'], 3 | }; 4 | -------------------------------------------------------------------------------- /playground/react-native-doom-fire/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @format 3 | */ 4 | 5 | import {AppRegistry} from 'react-native'; 6 | import App from './App'; 7 | import {name as appName} from './app.json'; 8 | 9 | AppRegistry.registerComponent(appName, () => App); 10 | -------------------------------------------------------------------------------- /playground/react-native-doom-fire/ios/DoomFire-tvOSTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /playground/react-native-doom-fire/ios/DoomFire/AppDelegate.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | #import 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (nonatomic, strong) UIWindow *window; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /playground/react-native-doom-fire/ios/DoomFire/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | } 33 | ], 34 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /playground/react-native-doom-fire/ios/DoomFire/Images.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /playground/react-native-doom-fire/ios/DoomFire/main.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | #import 9 | 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /playground/react-native-doom-fire/ios/DoomFireTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /playground/react-native-doom-fire/metro.config.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Metro configuration for React Native 3 | * https://github.com/facebook/react-native 4 | * 5 | * @format 6 | */ 7 | 8 | module.exports = { 9 | transformer: { 10 | getTransformOptions: async () => ({ 11 | transform: { 12 | experimentalImportSupport: false, 13 | inlineRequires: false, 14 | }, 15 | }), 16 | }, 17 | }; 18 | -------------------------------------------------------------------------------- /playground/react-native-doom-fire/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "DoomFire", 3 | "version": "0.0.1", 4 | "private": true, 5 | "scripts": { 6 | "start": "node node_modules/react-native/local-cli/cli.js start", 7 | "test": "jest" 8 | }, 9 | "dependencies": { 10 | "react": "16.8.3", 11 | "react-native": "0.59.1" 12 | }, 13 | "devDependencies": { 14 | "@babel/core": "^7.3.4", 15 | "@babel/runtime": "^7.3.4", 16 | "babel-jest": "^24.5.0", 17 | "jest": "^24.5.0", 18 | "metro-react-native-babel-preset": "^0.53.1", 19 | "react-test-renderer": "16.8.3" 20 | }, 21 | "jest": { 22 | "preset": "react-native" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /playground/react-native-doom-fire/preview.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/react-native-doom-fire/preview.gif -------------------------------------------------------------------------------- /playground/render-canvas-responsive-layout/doom-fire.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/render-canvas-responsive-layout/doom-fire.gif -------------------------------------------------------------------------------- /playground/render-using-gpu/doom-fire.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/render-using-gpu/doom-fire.gif -------------------------------------------------------------------------------- /playground/render-using-particles-with-p5/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /playground/render-with-canvas-and-hsl-colors/README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 | 5 | # Render with canvas and using hsl color instead of color pallet array 6 | 7 | - [Click here for the Demo page](https://filipedeschamps.github.io/doom-fire-algorithm/playground/render-with-canvas-and-hsl-colors/) 8 | 9 | ## Author 10 | 11 | | [
@felipe-pita](https://github.com/felipe-pita) | 12 | | :---: | -------------------------------------------------------------------------------- /playground/render-with-canvas-and-hsl-colors/demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/render-with-canvas-and-hsl-colors/demo.gif -------------------------------------------------------------------------------- /playground/render-with-canvas-and-hsl-colors/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | DOOM fire - Tutorial Filipe Deschamps 6 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /playground/render-with-canvas-draw-rect/README.md: -------------------------------------------------------------------------------- 1 | # Doom Fire Algorithm 2 | Fire effect from Doom implemented in plain JavaScript and using Canvas's drawRect to render the final effect. 3 | 4 | - [Click here for the Demo page](https://filipedeschamps.github.io/doom-fire-algorithm/playground/render-with-canvas-draw-rect/) -------------------------------------------------------------------------------- /playground/render-with-canvas/README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 | 4 | 5 |

6 | 7 | # Doom Fire Algorithm 8 | Fire effect from Doom implemented in plain JavaScript and using a canvas image data to render the final effect. 9 | 10 | - [Click here for the Demo page](https://filipedeschamps.github.io/doom-fire-algorithm/playground/render-with-canvas/) 11 | - [Click here for the Video tutorial](https://www.youtube.com/watch?v=HCjDjsHPOco) 12 | 13 | This project was inspired by [this article](http://fabiensanglard.net/doom_fire_psx/). 14 | 15 | ## Author 16 | 17 | | [
@mccraveiro](https://github.com/mccraveiro) | 18 | | :---: | 19 | -------------------------------------------------------------------------------- /playground/render-with-pixijs/README.md: -------------------------------------------------------------------------------- 1 | # Doom Fire Algorithm 2 | Fire effect from Doom implemented in plain JavaScript and using Canvas's drawRect to render the final effect. 3 | 4 | - [Click here for the Demo page](https://filipedeschamps.github.io/doom-fire-algorithm/playground/render-with-canvas-draw-rect/) -------------------------------------------------------------------------------- /playground/rust-algorithm-render-in-terminal/.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | **/*.rs.bk 3 | -------------------------------------------------------------------------------- /playground/rust-algorithm-render-in-terminal/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "rust-doom-fire" 3 | version = "0.1.0" 4 | authors = ["Mateus Moog "] 5 | edition = "2018" 6 | 7 | [dependencies] 8 | libmath = "*" 9 | rand = "*" 10 | termion = "*" 11 | -------------------------------------------------------------------------------- /playground/rust-algorithm-render-in-terminal/README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 | 5 | # DOOM Fire Algorithm in Rust 6 | Algorithm adapted from a JavaScript version on [this repository](https://github.com/filipedeschamps/doom-fire-algorithm). 7 | 8 | I made this adaptation as part of my beginning in Rust. So if you notice some way to improve this code, please contribute with a PR! You'd make my day <3 9 | 10 | ## Running 11 | To run this code, you will need install [Rust](https://www.rust-lang.org/tools/install), use a compatible terminal (I recomend [Hyper](https://hyper.is/)), and then run the commands below: 12 | 13 | ```sh 14 | git clone git@github.com:moog/rust-doom-fire.git 15 | cd rust-doom-fire 16 | cargo run 17 | ``` 18 | 19 | -------------------------------------------------------------------------------- /playground/rust-algorithm-render-in-terminal/demo-doom-fire.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/rust-algorithm-render-in-terminal/demo-doom-fire.gif -------------------------------------------------------------------------------- /playground/rust-algorithm-render-in-terminal/src/state.rs: -------------------------------------------------------------------------------- 1 | extern crate termion; 2 | 3 | pub struct State { 4 | pub width: u16, 5 | pub height: u16, 6 | pub number_of_pixels: u16, 7 | pub fire_pixels_vec: Vec, 8 | } 9 | 10 | impl State { 11 | pub fn new() -> State { 12 | let (mut width, mut height): (u16, u16) = termion::terminal_size().unwrap(); 13 | 14 | width -= 1; 15 | height -= 1; 16 | 17 | let number_of_pixels = width * height; 18 | 19 | State { 20 | width, 21 | height, 22 | number_of_pixels, 23 | fire_pixels_vec: vec![0; number_of_pixels as usize], 24 | } 25 | } 26 | 27 | pub fn change_pixel_intensity(&mut self, index: usize, intensity: u16) { 28 | self.fire_pixels_vec[index] = intensity; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /playground/rust-algorithm-render-in-terminal/src/utils.rs: -------------------------------------------------------------------------------- 1 | use std::{thread, time}; 2 | 3 | pub fn wait(millis: u64) { 4 | let duration = time::Duration::from_millis(millis); 5 | thread::sleep(duration); 6 | } 7 | 8 | -------------------------------------------------------------------------------- /playground/sdl2-implementation/Makefile: -------------------------------------------------------------------------------- 1 | all: game run 2 | 3 | game: 4 | g++ main.cpp -o play -l SDL2-2.0.0 5 | 6 | run: 7 | ./play 8 | 9 | clean: 10 | rm -rf play -------------------------------------------------------------------------------- /playground/sdl2-implementation/README.MD: -------------------------------------------------------------------------------- 1 | # Doom Fire Algorithm - SDL2 Implementation 2 | 3 | You should have SDL2 library installed in your system before run this code. 4 | 5 | [Simple DirectMedia Layer](https://www.libsdl.org/) 6 | 7 | If you don't know how, I recommend you Lazy Foo tutorials 8 | 9 | http://lazyfoo.net/tutorials/SDL/ 10 | 11 | ## Running 12 | 13 | After sdl2 installed in your system, just type make in your terminal 14 | 15 | ```sh 16 | make 17 | ``` 18 | 19 | [![DEMO](https://img.youtube.com/vi/EUrG0Y91oJU/0.jpg)](https://www.youtube.com/watch?v=EUrG0Y91oJU) 20 | 21 | ## Author 22 | 23 | [Marcos Paulo Farias](https://github.com/mrcsxsiq) -------------------------------------------------------------------------------- /playground/subpixel-division-and-color-interpolation/README.md: -------------------------------------------------------------------------------- 1 | ## Enhanced Doom Fire Algorithm: Subpixel Division & Color Interpolation 2 | 3 | This version of the code changes the ```renderFire()``` function from the main algorithm by introducing **subpixel division** and **color interpolation**: 4 | 5 | - **Subpixel Division:** 6 | Each fire pixel is subdivided into a grid of smaller subpixels (e.g., 5x5 per pixel), rather than being rendered as a single solid color block. 7 | 8 | - **Color Interpolation:** 9 | For each subpixel, the algorithm calculates an interpolated fire intensity based on the intensities of the current pixel and its neighbors (right, bottom, and bottom-right). This value is then mapped to a color. 10 | 11 | These enhancements result in: 12 | 13 | - Smoother color transitions 14 | - A less blocky fire effect 15 | 16 | [Click here for the Demo page](https://filipedeschamps.github.io/doom-fire-algorithm/playground/subpixel-division-and-color-interpolation) -------------------------------------------------------------------------------- /playground/subpixel-division-and-color-interpolation/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Doom-Fire with Color Interpolation 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /playground/subpixel-division-and-color-interpolation/main.css: -------------------------------------------------------------------------------- 1 | #canvas { 2 | background-color: #f0f0f0; 3 | border: 1px solid black; 4 | margin: 20px auto; 5 | display: block; 6 | } -------------------------------------------------------------------------------- /playground/ta-pegando-fogo-bixo/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Doom Fire Algorithm 3 | Fire effect from Doom implemented in plain JavaScript and using a Table to render the final effect with a final touch for an most needed version. 4 | 5 | - [Click here for the Demo page](https://filipedeschamps.github.io/doom-fire-algorithm/playground/ta-pegando-fogo-bixo/) 6 | 7 | ## Original implementation 8 | 9 | - [Original with tables](https://filipedeschamps.github.io/doom-fire-algorithm/playground/1st-implementation-with-tables) 10 | 11 | ## Author 12 | 13 | | [
@WeslleyNasRocha](https://github.com/WeslleyNasRocha) | 14 | | :---: | 15 | -------------------------------------------------------------------------------- /playground/ta-pegando-fogo-bixo/assets/faustao.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/ta-pegando-fogo-bixo/assets/faustao.jpg -------------------------------------------------------------------------------- /playground/ta-pegando-fogo-bixo/assets/fogo.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/ta-pegando-fogo-bixo/assets/fogo.mp3 -------------------------------------------------------------------------------- /playground/texts-on-fire/README.md: -------------------------------------------------------------------------------- 1 | # Text on fire 2 | 3 | ## How this is working? 4 | Maybe there's a better way to do that, but this implementation just get the text from input, write the text on canvas element. After that, using the getImageData method the text is retrieved as an image which allow me to parse its colorized pixels transforming them to an array and then apply the algorithm 5 | 6 | - [Click here for the Demo page](https://filipedeschamps.github.io/doom-fire-algorithm/playground/texts-on-fire/) 7 | -------------------------------------------------------------------------------- /playground/threejs-3d-cube/README.md: -------------------------------------------------------------------------------- 1 |
2 |

Doom Fire - Voxel Version

3 | Simulação 3D dinâmica do clássico efeito de fogo de Doom, estrutura de voxels usando three.js. Gire, faça zoom e ajuste os parâmetros em tempo real para ver o fogo alterar. 4 |

5 | 6 |
7 | -------------------------------------------------------------------------------- /playground/threejs-3d-cube/animation.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filipedeschamps/doom-fire-algorithm/577edc42fb8029be04fd76103e608df3e75c2af2/playground/threejs-3d-cube/animation.gif --------------------------------------------------------------------------------