diff --git a/media/attribution.js b/media/attribution.js
index d7d61376..665c4dbb 100644
--- a/media/attribution.js
+++ b/media/attribution.js
@@ -2044,6 +2044,20 @@ const attributionData = {
                 "vercursar"
             ]
         },
+        {
+            prefix: "./media/characters/elyssia/",
+            files: [
+                { name: "front.svg", source: "https://www.furaffinity.net/view/28619667/" },
+                { name: "front-clothed.svg", source: "https://www.furaffinity.net/view/28619667/" },
+                { name: "back.svg", source: "https://www.furaffinity.net/view/28619667/" },
+            ],
+            authors: [
+                "fsmaverick"
+            ],
+            owners: [
+                "neopuc"
+            ]
+        },
         {
             prefix: "./media/characters/epifox/",
             files: [
diff --git a/media/characters/elyssia/back.svg b/media/characters/elyssia/back.svg
new file mode 100644
index 00000000..be5af750
--- /dev/null
+++ b/media/characters/elyssia/back.svg
@@ -0,0 +1,366 @@
+
+
+
diff --git a/media/characters/elyssia/front-clothed.svg b/media/characters/elyssia/front-clothed.svg
new file mode 100644
index 00000000..79044b6e
--- /dev/null
+++ b/media/characters/elyssia/front-clothed.svg
@@ -0,0 +1,585 @@
+
+
+
diff --git a/media/characters/elyssia/front.svg b/media/characters/elyssia/front.svg
new file mode 100644
index 00000000..3e2b8797
--- /dev/null
+++ b/media/characters/elyssia/front.svg
@@ -0,0 +1,413 @@
+
+
+
diff --git a/presets/characters.js b/presets/characters.js
index 052d1d06..014a5af2 100644
--- a/presets/characters.js
+++ b/presets/characters.js
@@ -11585,6 +11585,60 @@ characterMakers["Carmine"] = () => {
     )
 };
 
+characterMakers["Elyssia"] = () => {
+    return makeCharacter(
+        "Elyssia",
+        "Neopuc",
+        {
+            front: {
+                height: math.unit(6, "feet"),
+                weight: math.unit(150, "lb"),
+                name: "Front",
+                image: {
+                    source: "./media/characters/elyssia/front.svg",
+                    extra: 2201/2035 * (1 / (1 - 0.05)),
+                    bottom: 0.05
+                }
+            },
+            frontClothed: {
+                height: math.unit(6, "feet"),
+                weight: math.unit(150, "lb"),
+                name: "Front (Clothed)",
+                image: {
+                    source: "./media/characters/elyssia/front-clothed.svg",
+                    extra: 2201/2035 * (1 / (1 - 0.05)),
+                    bottom: 0.05
+                }
+            },
+            back: {
+                height: math.unit(6, "feet"),
+                weight: math.unit(150, "lb"),
+                name: "Back",
+                image: {
+                    source: "./media/characters/elyssia/back.svg",
+                    extra: 2201/2035 * (1 / (1 - 0.013)),
+                    bottom: 0.013
+                }
+            },
+        },
+        [
+            {
+                name: "Smaller",
+                height: math.unit(150, "feet")
+            },
+            {
+                name: "Standard",
+                height: math.unit(1400, "feet"),
+                default: true
+            },
+            {
+                name: "Distracted",
+                height: math.unit(15000, "feet")
+            },
+        ]
+    )
+};
+
 function makeCharacters() {
     const results = [];
     results.push({
diff --git a/presets/scenes.js b/presets/scenes.js
index fc77d254..15bc36b7 100644
--- a/presets/scenes.js
+++ b/presets/scenes.js
@@ -77,10 +77,15 @@ scenes["Neopuc"] = () => {
             return owners.indexOf("neopuc") != -1;
         else
             return false;
-    }).forEach(maker => {
-        const entity = maker.constructor();
+    }).map(maker => {
+        return maker.constructor();
+    }).sort((e1, e2) => {
+        return e1.sizes[e1.sizes.length - 1].height.toNumber() - e2.sizes[e2.sizes.length - 1].height.toNumber()
+    }).reduce((size, entity) => {
+        entity.views[entity.view].height = math.unit(100 * Math.sqrt(size), "meters");
         displayEntity(entity, entity.view, 0, 1);
-    });
+        return size+1;
+    }, 1)
     
     arrangeEntities(getSortedEntities());
     fitWorld(true);