Category: General

  • New BeamNG Modding Project: Toyota Soluna AL50/Ibishu SLN-10

    New BeamNG Modding Project: Toyota Soluna AL50/Ibishu SLN-10

    Having gotten tired of broken AI models, destroyed repositories, lagging GitHub environments, and broken fast.ai courses, I pivoted to an entirely new project this week: BeamNG modding. The vehicle mod I’m intending to build is based on the 1998-2002 Toyota Soluna AL50; the first step is to create an exact replica of that mod for third-party free distribution. Then, a more refined lore-friendly Ibishu version will be released.

    For quite a long time, I’ve been intending to get into the BeamNG vehicle modding universe. However, the issue has been the 3D modeling segment of the project, which is where I’ve always gotten stuck. Up until this week, the most I’d been able to achieve was getting the reference images positioned into the environment with none of the actual vehicle whatsoever; now, though, it seems I’ve made some progress. Read on for some details on my current undertakings, some screenshots, and plans for what I’m going to do next.

    The Project

    This is the vehicle I’m trying to model right now. Read more on Wikipedia for a brief overview.

    Not wanting to spend ten months designing an elaborate electronic gauge cluster and setting up emergency braking with automatic headlights and drink dispensers, I decided to choose a relatively basic, bare-bones vehicle to model. I ended up going with the Asia-exclusive Toyota Soluna, which is only sold in a right-hand drive configuration. It’s slightly smaller than the early-2000s Toyota Corolla, and has much less in the way of features. However, it’s a functional, reliable vehicle, and seems to be pretty easy to model.

    I’ve started off by obtaining reference photos of various angles of the vehicle, including a side view, front view, and rear view. I’ve then placed these inside the Blender environment so I can better structure the blocking boxes (which will be discussed in the next section). The plan is to only offer the vehicle in an RHD configuration when distributing it through Modland; after all, this initial stage of replicating the exact vehicle is partly for my benefit and for the enjoyment of actually experiencing an in-game Toyota Soluna. (There is currently NO Soluna mod widely available for BeamNG – not even close).

    After that’s done, I intend to go back and refine the mod for distribution on the internal, strict BeamNG Repository. Here, you are prohibited from uploading mods of real life vehicles, so I’ll need to modify the vehicle so it fits in with the fictional in-game car company Ibishu. This actually works perfectly, since Ibishu has always been represented as BeamNG’s version of Toyota. The Soluna’s lines fit well with Ibishu vehicles in that era (Covet, Pessima Mk1, etc.) and should be a good lore-friendly project.

    The Process

    As of right now (Friday, July 17, 2026), I currently have a complete blockout of the Soluna, and I’ve added some loop cuts to signify some basic panel divisions. A “blockout” essentially represents the skeleton of the vehicle; you have the full envelope, the roof, all four doors, the trunk lid, and the hood. This makes for a total of ten boxes, including the front and rear bumpers as well, which you might be able to see in the above image. This blockout will provide me with a starting point for pulling vertices and shaping the curvature of the vehicle; that’s the next step I’ll be moving onto shortly.

    To start off with this mod, I’ve decided to make use of Blender Python, or .bpy scripts, to generate some of the geometry. Doing some of that stuff by hand would be very tedious, so I have used scripts to add mirror modifiers (so that changes I make on the driver’s side will be mirrored to the passenger side, for example) and find the exact specifications of the vehicle. This measurement-finding has actually been the most time-consuming part of the process so far: I’ve had to line up all the boxes exactly to the reference images, making sure the front overhang is the correct length and checking all values in the script against official measurements.

    Hopefully I haven’t made any serious mistakes in aligning the vehicle against the images, but from what I can tell, everything seems to be working out. In the image above, I’m looking at the environment in the 3D perspective; if you were to switch to right orthographic or front orthographic view, you’d see the vehicle lined up closely to the reference image. An example of the side perspective is shown below:

    The right orthographic view of the blocking boxes. You can see the three loop cuts I’ve added on the soluna_body box, which represent the front fender arch, the B-pillar (midpoint of the two doors), and the rear-fender arch. There’s also a loop cut on the hood box representing the windshield-to-hood divider, but that’s not visible as the hood box is not currently selected.

    I spent the most time yesterday on getting those insane loop cuts to actually go in. At first, I was just spamming Ctrl+R, clicking helplessly, and nothing was happening. Then, after some searching and usage of AI agents, I discovered the proper sequence of clicks and presses to make those loop cuts appear. I had to re-generate the entire blockout in the process, though, because somewhere along the way the environment had gotten muddled and unable to process any new loop cuts. Now that I have four cuts, though, I’m going to start extruding and pulling vertices to shape the vehicle, which might involve some more frustration and Blender Python scripts.

    Next Steps

    Here it is: the trademark “Next Steps” section that I always manage to include in these project update posts. Well, when it comes to this Toyota Soluna mod, the primary next step is going to be to continue working on shaping out the vehicle and creating a real structure. Right now, I just have some vague boxes for where the various panels and portions are; over the next few weeks I’d like to refine the shape of the vehicle and maybe have a hood/trunk curvature laid out. This is probably the most time-consuming portion of the modding process, although the whole JBEAMING situation might be difficult as well.

    With the fabled BeamNG v0.39 update in a confused state, I’m not sure how it’s going to affect this process. It could be released this Sunday, or this September–or even next year. When it does come out, though, I really hope the devs won’t break the jbeaming interface or drastically change anything related to the modding process, because it means I’ll have to relearn everything to do with Lua and possibly contend with out-of-date and broken models. If that happens, it’s time to return to the Ashryver models!

    Stay tuned for further updates. Time to continue working on the modeling.

  • Summer Update: AI Models, Flames of Rebellion, Chamber Music

    Summer Update: AI Models, Flames of Rebellion, Chamber Music

    With the academic year classes having come to a conclusion, the summer has officially started. I made a goal for myself back in late April, when things were still extremely busy, that I would try to push harder on the fourth and final book in the Flames of Rebellion series when classes ended. I had just published Book 3.5 on Amazon and was feeling motivated to wrap up the series; Book 4 already had about 9,000 words of content in it from the previews I had written.

    Now, as of late May, I’ve mostly achieved that goal. Over the past few days, I’ve put down over 3,000 words into Book 4, The Conquest of Piece, reaching over 12,000 words. Things have gotten significantly more interesting than the first few chapters, and I’m using a rather chaotic mind map with sticky notes to keep track of this book’s plot. In a couple of chapters, the plan is to create a serious plot twist by adding an evacuation situation of the Tranquility’s Ozridia base due to a bomb threat (or possible actual bomb). I’d also like to fully develop and flesh out Jonathan and Lily’s romance, as this is the last book now. I’ve already added some romantic cues in the first few chapters; I intend to make Jonathan’s upcoming birthday party the culmination of their relationship.

    On the subject of artificial intelligence and machine learning, I’ve moved onto a new Kaggle challenge: house price prediction. After failing horribly to get the sentiment analysis model to work, I stopped trying to extract answers from Claude and pivoted to something else. This house price prediction challenge involves the creation of a model to predict the prices of houses in the Iowa area based on various attributes, like number of bedrooms, pool quality, fence presence, square footage, etc. The dataset is quite large; there are seventy-nine features available, all with varying correlations to the central SalePrice target variable. So far, I’ve analyzed the data using some Seaborn scatterplots, generated correlation matrices to see which features to encode, and gotten started on cleaning the data (which has involved deleting outliers and imputing NA values). I can already tell that this challenge, while still labeled “introductory”, is slightly more intensive in terms of data preparation and analysis than the Kaggle Titanic challenge.

    I’m also loosely working on the virtual card deck project, where I’m attempting to create a virtual cards app that people can customize to fit their specific needs. Right now, I have a modal where you can input the number of decks, the name of each deck, the background art, and the titles/descriptions for the cards in the deck. Most of the data is persisted, and the modal seems to be behave as expected. However, I’ve been running into trouble getting all the data to save to local Storage, not just the number of decks. I’ve asked lots of questions of Microsoft Copilot, but no real results have come yet. This project is one of the most complex undertakings for me yet when it comes to web design, HTML, and JavaScript, so I’m not expecting it to work perfectly for many more months.

    Tomorrow, I’m starting a chamber music perspectives (CMP) camp, which will run for about a week and a half and take place from 1:00 PM to 5:00 PM. This camp involves not only a series of small ensemble performances (piano trio and string quartet size), but also some composition masterclasses and the opportunity to compose a piece of your own for the ensemble to play. This will be the “Final Project”, as it’s been dubbed; it looks like this camp will be very fast-paced and packed with activities. This final project needs to be started from scratch on day one and completed by the tenth day, giving us less than two weeks to compose a fleshed-out, playable, and refined 3-5 minute piece. For context, it usually takes me about two months to compose a high-quality 5-minute multi-instrument piece; however, I only work about 45 minutes every other day. At this camp, we’ll likely spending at least an hour and a half every day on this final project.

    Some other miscellaneous endeavors from the past couple of weeks include an AI radio show, which I just finished today. This is the third such show I’ve completed now (well, fourth, if you count Why You Should Be Afraid of Physics Class, a 20-minute-long drama), and I’m using Fish Audio to generate all the voices. These shows generally run for 25-28 minutes, and this latest episode contains the guest host Sal Khan. You’re probably wondering: how did I possibly get Sal Khan to appear on a low-level AI-produced radio show? Because this isn’t an AI-produced show: the voices are all AI. I do the editing and the generating of the voices. Sal Khan is a cloned voice available on Fish Audio, and I’ve cloned a few others for use in these episodes. It’s quite an interesting process, actually. I’ll be using DaVinci Resolve’s Fairlight studio instead of the clunky Audacity to edit this show together. Hopefully it won’t be too much of a shock to use. (The video editor portion of DaVinci Resolve is actually quite easy to learn. I’ve put together quite a few videos with it now).

    Well, tomorrow’s going to be quite a busy day, with the starting of the CMP Chamber Music Perspectives camp. I’ll try to work on the AI models this weekend if possible, in addition to the usual (shortened) BeamNG Roleplay sessions. Stay tuned for more updates.

  • Site Update: One Page Down, Four to Go

    Site Update: One Page Down, Four to Go

    Yesterday I completed the construction and writing of the Flames of Rebellion page, which lists complete details concerning my young adult series Flames of Rebellion. It now has exclusive trivia and facts about the books, some background and insights into the inspirations, and links to the Amazon series page. This is timely, since I just finished the writing process for Flames of Rebellion: The Reckoning of the Past (book 3.5) and am now getting into the preview of Book 4. At this point, I would estimate Book 3.5 will be out in 8-10 weeks, factoring in the proofreading time.

    My next stop is the “Short Stories” page, which will contain some information about the few short stories that I’ve actually been able to complete. (Don’t worry, I’m currently brainstorming ideas concerning future short stories). After that it’ll be time for the Poetry page, and then the About and Music pages. There are also some featured images I’d like to update on the home page, so you may notice those changing as well.

    Users now also have the ability to sign up to this blog. All you have to do is scroll down to the bottom of the Blog page, enter your email in the form, and sign up. This is a good idea if you want to receive regular updates on the construction of the website, and releases of new installments in the Flames of Rebebellion series (and other novels).

    We’ll be leaving for the New York trip (which I mentioned in the previous blog post) in approximately a week, so you’ll start hearing updates on that soon enough. I also just published a new oral reflection/book review on my substack, The Random Writing Emporium. If you’d like to check it out, the link is here; you’ll typically find more interesting and substantive blog posts on that Substack than this feed, which I mainly use for website progress reports and work release notifications.

    That will be all for now. Stay tuned for more udpates!

  • Another Year Over

    Yesterday was the first day of 2026. I know I’ve probably said this many times over the years, but it feels like 2025 just disappeared in a flash. Where did October, November, and December go? What about February and March and April? Already we’re more than halfway through this decade, and it seems like it just started.

    Aside from getting this website set up, doing some writing on Flames of Rebellion Book 3.5, and composing some piano + cello duets, it’s been a quiet long weekend. This is good, because Thanksgiving was not without its tears. (To read more about why that was the case, you can check out the Short Stories & Poems page for some comments). With the weather cooled off and a brief hiatus from classes and activities in order, there has been lots of time for creativity.

    This blog here on Discordant Harmony is one of my two primary blogs. The other is on Substack, called Writing Hatchery. I don’t post as much on there as I used to, but when I do it’s usually a reflection on a pungent piece of writing, or a collection of poems. I plan to alternate back and forth between this blog and that one, so you’ll probably want to subscribe to both for semi-regular updates.


    I’ll be starting off 2026 with quite a major event. In about two weeks we’ll be leaving for a trip to New York, where I’ll be playing at a Carnegie Hall recital that was relatively unexpected for most of last fall. We’ll be staying for about a week, participating in an Ivy League College Tour following the recital.

    You’re probably thinking: New York in January? Are you kidding me? But that was the date the recital was set for, and as Calvin’s dad would say, the cold weather will help you to build character. Expect some scattered updates and travel logs on that situation as we approach that time, although I’ll likely have too much to attend to on the trip to spare much for blog posts.

    Following the New York trip, classes and activities will resume as normal, and I plan to get Flames of Rebellion: The Reckoning of The Past (Book 3.5) released this spring. Stay tuned for more updates there.


    My next step in setting up this website will be to get the Short Stories & Poetry page created. The Flames of Rebellion book series page is almost done, with a bit more work to be completed on the “Comments and Inspirations” section. I’m hoping I can coerce WordPress into displaying my poems and short stories without destroying the formatting. That could pose quite a challenge.

    Other than that, expect occasional blog post entries on here as the mood warrants, containing anything from samples of poems, scenery photography, to just general commentaries. Occasionally you might see a new short story I’m working on as well.

    That’s all for now! Enjoy the rest of your 2026.