Modified Track Path Editor + Tracks/Discussion

Has anyone tried to replicate the Seattle circuit but with jumps and elevation?
I want to try to do this. I don't know where to start in all this.

If I could learn this and how to remove parts of the track to make jumps and gaps I will learn to do so and make the figure 8 proposed here.

I wish my coding were useful here. Sadly nothing I can do can help here. I don't understand anything these wonderful people are discussing. Only some things.
 
Last edited:
Also, here is a track I made with the help of the contour map. It starts at the bottom of the lowest valley, gradually climbs up to the tallest mountain, and then descends back into the valley.

Download link: https://www.gran-turismo.com/it/gt6/user/#!/friend/eran0004/course/2311752/

Beautiful Track,

ANy Chance of a Reverse version?

EDIT:
just raced this on Arcade, stock 84 Ferrari GTO. Infinite laps.
Great track. Flows very nicely. But also has that feeling of a real mountain road.

Need better brakes than a stock 80's Fezza though...
 
Last edited:
Beautiful Track,

ANy Chance of a Reverse version?

EDIT:
just raced this on Arcade, stock 84 Ferrari GTO. Infinite laps.
Great track. Flows very nicely. But also has that feeling of a real mountain road.

Need better brakes than a stock 80's Fezza though...

Very small chance of a reverse version. I just used the modded APK, I have no idea how to reverse a track. Glad you like the track though!

I want to try to do this. I don't know where to start in all this.

If I could learn this and how to remove parts of the track to make jumps and gaps I will learn to do so and make the figure 8 proposed here.

I wish my coding wer useful here. Sadly nothing I can do can help here. I don't understand anything these wonderful people are discussing. Only some things.

I'm working on an elevation tool, but I only just started and I doubt it will be ready before the end of the summer.

Here's a visual representation of an interpolation model I'm writing right now, where f is the point that is raised, a is a non-influenced point while b to e are all influenced by the raised point f. In this example the influence is 4, which means that the raised point influences the 4 closest points before and after, but the formula allows for the influence to be set to any number greater than or equal to 0. The idea is that you won't have to adjust all the height points manually, but instead you can use proportional editing to raise or lower an entire section.


trig_1.png


In Python code (sharing is caring) :

Code:
import math

def interpolation(influence=4):
    '''Generates an interpolation curve based on
    the width of the influence.'''
 
    def __main__(inf):
        cos = math.cos(math.radians(30)) #generates the cosine of a 30 degree angle
        indexes = [i*2 for i in range(1, 1+math.ceil(inf/2))]
        curve = adj(indexes, cos, inf+1)
        return curve 

    def adj(indexes, cos, inf):
        head = []
        tail = []
        for item in indexes:
            opp = cos*item/inf
            adj = (1-(opp**2))**0.5
            head.append(adj)
            tail.append(1-adj)
        if inf % 2 == 0:
            tail.pop()
        tail.sort(reverse=True)   
        return head+tail

    curve = __main__(influence)
    return curve

Edit: Update. Here is a script that takes a list of heights and performs elevation changes to it, calling the interpolation function above.

Code:
def elevate(height_data, index, elev, influence=3):
    '''Takes a list of height data and changes its elevation.'''
    interpol_curve = interpolation(influence)
    hd_len = len(height_data)
    height_data[index] += elev
  
    counter = 0
    for item in interpol_curve:
        counter+=1
        pos_counter = index+counter
        neg_counter = index-counter
        if abs(pos_counter)+1 > hd_len:
            pos_counter -= hd_len    
        if abs(neg_counter)+1 > hd_len:
            neg_counter += hd_len
        height_data[pos_counter] += (elev*item)
        height_data[neg_counter] += (elev*item)

    return height_data

Here is an example of what it can do to a flat heights list (originally, all heights of this list were 0):

elevs.png
 
Last edited:
Very small chance of a reverse version. I just used the modded APK, I have no idea how to reverse a track. Glad you like the track though!



I'm working on an elevation tool, but I only just started and I doubt it will be ready before the end of the summer.

Here's a visual representation of an interpolation model I'm writing right now, where f is the point that is raised, a is a non-influenced point while b to e are all influenced by the raised point f. In this example the influence is 4, which means that the raised point influences the 4 closest points before and after, but the formula allows for the influence to be set to any number greater than or equal to 0. The idea is that you won't have to adjust all the height points manually, but instead you can use proportional editing to raise or lower an entire section.


View attachment 555810

In Python code (sharing is caring) :

Code:
import math

def interpolation(influence=4):
    '''Generates an interpolation curve based on
    the width of the influence.'''

    def __main__(inf):
        cos = math.cos(math.radians(30)) #generates the cosine of a 30 degree angle
        indexes = [i*2 for i in range(1, 1+math.ceil(inf/2))]
        curve = adj(indexes, cos, inf+1)
        return curve

    def adj(indexes, cos, inf):
        head = []
        tail = []
        for item in indexes:
            opp = cos*item/inf
            adj = (1-(opp**2))**0.5
            head.append(adj)
            tail.append(1-adj)
        if inf % 2 == 0:
            tail.pop()
        tail.sort(reverse=True)  
        return head+tail

    curve = __main__(influence)
    return curve

Edit: Update. Here is a script that takes a list of heights and performs elevation changes to it, calling the interpolation function above.

Code:
def elevate(height_data, index, elev, influence=3):
    '''Takes a list of height data and changes its elevation.'''
    interpol_curve = interpolation(influence)
    hd_len = len(height_data)
    height_data[index] += elev
 
    counter = 0
    for item in interpol_curve:
        counter+=1
        pos_counter = index+counter
        neg_counter = index-counter
        if abs(pos_counter)+1 > hd_len:
            pos_counter -= hd_len   
        if abs(neg_counter)+1 > hd_len:
            neg_counter += hd_len
        height_data[pos_counter] += (elev*item)
        height_data[neg_counter] += (elev*item)

    return height_data

Here is an example of what it can do to a flat heights list (originally, all heights of this list were 0):

View attachment 555853
What units are the X and y axis going by?
 
Very small chance of a reverse version. I just used the modded APK, I have no idea how to reverse a track. Glad you like the track though!



I'm working on an elevation tool, but I only just started and I doubt it will be ready before the end of the summer.

Here's a visual representation of an interpolation model I'm writing right now, where f is the point that is raised, a is a non-influenced point while b to e are all influenced by the raised point f. In this example the influence is 4, which means that the raised point influences the 4 closest points before and after, but the formula allows for the influence to be set to any number greater than or equal to 0. The idea is that you won't have to adjust all the height points manually, but instead you can use proportional editing to raise or lower an entire section.


View attachment 555810

In Python code (sharing is caring) :

Code:
import math

def interpolation(influence=4):
    '''Generates an interpolation curve based on
    the width of the influence.'''

    def __main__(inf):
        cos = math.cos(math.radians(30)) #generates the cosine of a 30 degree angle
        indexes = [i*2 for i in range(1, 1+math.ceil(inf/2))]
        curve = adj(indexes, cos, inf+1)
        return curve

    def adj(indexes, cos, inf):
        head = []
        tail = []
        for item in indexes:
            opp = cos*item/inf
            adj = (1-(opp**2))**0.5
            head.append(adj)
            tail.append(1-adj)
        if inf % 2 == 0:
            tail.pop()
        tail.sort(reverse=True)  
        return head+tail

    curve = __main__(influence)
    return curve

Edit: Update. Here is a script that takes a list of heights and performs elevation changes to it, calling the interpolation function above.

Code:
def elevate(height_data, index, elev, influence=3):
    '''Takes a list of height data and changes its elevation.'''
    interpol_curve = interpolation(influence)
    hd_len = len(height_data)
    height_data[index] += elev
 
    counter = 0
    for item in interpol_curve:
        counter+=1
        pos_counter = index+counter
        neg_counter = index-counter
        if abs(pos_counter)+1 > hd_len:
            pos_counter -= hd_len   
        if abs(neg_counter)+1 > hd_len:
            neg_counter += hd_len
        height_data[pos_counter] += (elev*item)
        height_data[neg_counter] += (elev*item)

    return height_data

Here is an example of what it can do to a flat heights list (originally, all heights of this list were 0):

View attachment 555853
Oh great, more math...
 
Very small chance of a reverse version. I just used the modded APK, I have no idea how to reverse a track. Glad you like the track though!

No stress,
I thought the modded APK might make switching directions and mirroring a simple affair.
 
So wait. The apk is coded in python? I have a lot of free time. I could read up a bit on python to see if I can help. I have limited, c++ knowledge. So although I'm aware they're very different I already know how tedious it can be to learn code.

Would I be able to help a bit or do you think the code is too advanced?
 
So wait. The apk is coded in python? I have a lot of free time. I could read up a bit on python to see if I can help. I have limited, c++ knowledge. So although I'm aware they're very different I already know how tedious it can be to learn code.

Would I be able to help a bit or do you think the code is too advanced?

APK is mostly written in C# (Well apk is just a package which you can extract with for example 7Zip). No Python there. It's @eran0004 's tool that is coded in Python.
 
Dumb question, how do I rename & sign that apk ?
I'm on a mobile only, PC is dead :(

Not quite sure about what you mean with rename? The same as renaming any files? Or do you want to rename the whole apk package so you can install it along side of the official one? That needs some more work.

Signing you can do with for example ZipSigner.
 
@gr12 I got the track but same problems as @eran0004 found. The spiral makes walls all the way to the bottom.

I eventually found a hole by following the AI. It was like salmons swimming upstream. But after the spiral is a huge vertical wall. The track is impossible to complete. Why did you share it? Waste of time for everyone who tries.
 
So wait. The apk is coded in python? I have a lot of free time. I could read up a bit on python to see if I can help. I have limited, c++ knowledge. So although I'm aware they're very different I already know how tedious it can be to learn code.

Would I be able to help a bit or do you think the code is too advanced?

I'm using Python to process the data contained in the GT6TED file, not to make any changes to the actual course maker app.
 
APK is mostly written in C# (Well apk is just a package which you can extract with for example 7Zip). No Python there. It's @eran0004 's tool that is coded in Python.

I'm using Python to process the data contained in the GT6TED file, not to make any changes to the actual course maker app.

Ah. I see.

Sorry. Then I'll learn c# instead and re read this thread to see the breakthroughs you guys have done so far and little by little see if I can help in some way.

This course maker modding job you guys have collectively done is amazing.

I might as well learn how to use the modded apks.
 
Not quite sure about what you mean with rename? The same as renaming any files? Or do you want to rename the whole apk package so you can install it along side of the official one? That needs some more work.

Signing you can do with for example ZipSigner.
by renaming i mean changing the extension from .rar to .apk
 

Latest Posts

Back