Forza painter app with python

Overview

forza-painter

Discord: A-Dawg#0001 (AE)
Supports: Forza Horizon 5
Offically (OTHER v1.405.2.0, MS STORE v3.414.967.0, STEAM v1.414.967.0)
Unofficially (most versions should work)
License: MIT

KNOWN ISSUES (None right now!):

Please contact me on Discord A-Dawg#0001 if you have issues.

What is this for?:

Image → Geometrize → Forza Horizon 5 (Vinyl Group)

Does this work for the Steam version or the Microsoft Store version?

It now supports both! And it should work for older and future releases too thanks to pattern scanning.

How does it work?:

Geometrize breaks the images down into shapes and can export a .json data file.

forza-painter deserializes this .json data file and uses some math, reverse engineering and the Windows API to push these shapes into FH5 automagically.

READ EVERYTHING BELOW BEFORE ASKING FOR HELP

Requirements

  • Geometrize (https://www.geometrize.co.uk/)
  • python 3.9 64-bit (eariler versions may work but untested)
  • The below python packages (just install from the command line):
pip install psutil
pip install pywin32
pip install opencv-python

FAQ:

  • Will this get me banned!?
To preface this:
I take no responsibility for your use of this software.

You may be reported by players if you share the vinyls as they are extremely
detailed. Some players feel that making vinyl groups in this way is unfair as
they have had to suffer through learning the tool and were not able to use an
easy starting point.

This is a completely valid opinion, and with enough time, practice and talent
you CAN recreate extremely complex images. I just don't share the opinion that
you should have to.

As for FH5 detecting this; It is not a "cheat", it is not giving any player
an unfair advantage, it is not modifying game files or game code, and it is
not taking advantage of any exploits.

Interpret that as you feel. I believe this is a missing necessary feature
from the vinyl group designer.
  • My version is older/newer or it isn't working following the steps!
For unsupported versions, forza-painter will scan for a known pattern.
If it fails to find this pattern, it will notify you.
Most versions should work fine, but others may need tweaking.
  • Will you update this to support newer versions?
It should automatically support newer versions providing the memory structures remain similar.
In the event of it failing on a new version I will revise the code.
  • I have an error that I don't understand...
Check the requirements above.
Ensure you have python 3.9 or later installed (make sure it is 64-bit) by running
`python` from the command prompt and that you have installed the python packages.
If you can't manage this, I probably can't help you.
If you are still having problems, contact me on Discord if you wish.
  • Can you make a version that just uses inputs to create the shapes?
I can, but I won't. I've open sourced this for a reason.
Feel free to take it and make changes as you wish as permitted by the MIT licence.
Just throw me [A-Dawg#0001 (AE)] a little credit.
  • My issue is not listed
Feel free to create an issue or contact me on Discord A-Dawg#0001

Making your template Vinyl Groups (reuse these)

  • Open Forza Horizon 5 and create a new Vinyl Group.
  • Just make one sphere and duplicate it for as many layers as you need. Color, size, scale, etc. DO NOT MATTER.
  • Save this as a template as something identifiable e.g. forza-painter 3000 shapes.

Note: When you load these templates the shapes will be grouped, make sure you select them and UNGROUP before using.

Using forza-painter to recreate the .json file (from Geometrize) in Forza Horizon 5:

  • First generate the .json file in Geometrize (see below steps).
  • Open a template with the number of shapes (all spheres) that you desire to represent your geometry (see above steps) then UNGROUP it.
    • e.g. if you load 500 spheres and ungroup, it will only use those 500 spheres
  • Finally, just drag the .json geometry onto the drag_geometry_file_here.bat batch script, python will do the rest.

Using Geometrize to generate your .json geometry:

  • First Disable Image Downscaling in File → Global Preferences → Performance

  • Then after loading any image, use the below settings:

  • Wait for the number of shapes you want to target (1000, 3000 or something smaller if you wish).
  • Finally click the Exporters tab at the bottom of the panel and select Save Grometry Data..

A minimal, standalone viewer for 3D animations stored as stop-motion sequences of individual .obj mesh files.

ObjSequenceViewer V0.5 A minimal, standalone viewer for 3D animations stored as stop-motion sequences of individual .obj mesh files. Installation: pip

csmailis 2 Aug 04, 2022
CadQuery is an intuitive, easy-to-use Python module for building parametric 3D CAD models.

A python parametric CAD scripting framework based on OCCT

1.9k Dec 30, 2022
Extracts random colours from an image

EXTRACT COLOURS This repo contains all the project files. Project Description A Program that extracts 10 random colours from an image and saves the rg

David .K. Danso 3 Dec 13, 2021
Tweet2Image - Convert tweets to Instagram-friendly images.

Convert tweets to Instagram-friendly images. How to use If you want to use this repository as a submodule, don't forget to put the fonts d

Janu Lingeswaran 1 Mar 11, 2022
sK1 2.0 cross-platform vector graphics editor

sK1 2.0 sK1 2.0 is a cross-platform open source vector graphics editor similar to CorelDRAW, Adobe Illustrator, or Freehand. sK1 is oriented for prepr

sK1 Project 238 Dec 04, 2022
reversable image censoring tool

StupidCensor a REVERSABLE image censoring tool to reversably mosiac censor jpeg files to temporarily remove image details not allowed on most websites

2 Jan 28, 2022
AutoGiphyMovie lets you search giphy for gifs, converts them to videos, attach a soundtrack and stitches it all together into a movie!

AutoGiphyMovie lets you search giphy for gifs, converts them to videos, attach a soundtrack and stitches it all together into a movie!

Satya Mohapatra 18 Nov 13, 2022
Image Processing - Make noise images clean

影像處理-影像降躁化(去躁化) (Image Processing - Make Noise Images Clean) 得力於電腦效能的大幅提升以及GPU的平行運算架構,讓我們能夠更快速且有效地訓練AI,並將AI技術應用於不同領域。本篇將帶給大家的是 「將深度學習應用於影像處理中的影像降躁化 」,

2 Aug 04, 2022
🎨 Generate and change color-schemes on the fly.

Generate and change color-schemes on the fly. Pywal is a tool that generates a color palette from the dominant colors in an image. It then applies the

dylan 6.9k Jan 03, 2023
Herramienta Para Snipear Nitros Y Participar En Sorteos Automaticamente

Crips Nitro Sniper Discord Nitro Sniper Y Auto Participar En Sorteos ⚠️ Es Bastante Rapido Y Efectivo Hecho En Python Como Usar ( Python ) : python -m

1 Oct 27, 2021
BeeRef — A Simple Reference Image Viewer

BeeRef — A Simple Reference Image Viewer BeeRef lets you quickly arrange your reference images and view them while you create. Its minimal interface i

Rebecca 245 Dec 25, 2022
A suite of useful tools based on 3D interactivity in napari

napari-threedee A suite of useful tools based on 3D interactivity in napari This napari plugin was generated with Cookiecutter using @napari's cookiec

11 Dec 14, 2022
Music Thumbnail Maker

Music Thumbnail Installing pip install TMFrame

krypton 4 Jan 28, 2022
Program for analyzing shadows from Cassini images

Moons: An Analysis Module for Vicar Files General This packages/program was created for my bachelor's thesis for the Astronomy department at Universit

Joni 1 Jul 16, 2021
Fixes 500+ mislabeled MURA images

In this repository, new csv files are provided that fixes 500+ mislabeled MURA x-rays for all categories. The mislabeled x-rays mainly had hardware in them. This project only fixes the false negative

Pieter Zeilstra 4 May 18, 2022
imgAnalyser - Un script pour obtenir la liste des pixels d'une image correspondant à plusieurs couleurs

imgAnalyser - Un script pour obtenir la liste des pixels d'une image correspondant à plusieurs couleurs Ce script à pour but, à partir d'une image, de

Théo Migeat 1 Nov 15, 2021
Image Processing HighPass Filter With Python

Image_Processing_HighPassFilter High Pass Filter take the high frequency and ignore the low frequency High Pass Filter can be use to sharpening an ima

Felix Pratamasan 1 Dec 27, 2021
Alternate Python bindings for the Open Asset Import Library (ASSIMP)

Impasse A simple Python wrapper for assimp using cffi to access the library. Requires Python = 3.7. It's a fork of PyAssimp, Assimp's official Python

Salad Dais 3 Sep 26, 2022
cmdpxl: a totally practical command-line image editor

cmdpxl: a totally practical command-line image editor Features cmdpxl has many exciting functionalities, including Editing pixels one at a time! Savin

Jieruei Chang 475 Dec 23, 2022