Coder Social home page Coder Social logo

visage's Introduction

Visage

This version of Visage is no longer maintained. The official service is still up, and will remain up indefinitely barring extenuating circumstances. Additionally, the official service runs a new revision of Visage that's designed for speed and has additional features (such as Ears support, better antialiasing, and no GPU requirement).

Issues with the official service should be directed to my email.

visage's People

Contributors

aaron1011 avatar robertherhold avatar stephan-gh avatar unascribed avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

visage's Issues

Request Timed Out?

Sorry if this is easy to fix or it's a little stupid mistake but I'm getting
com.surgeplay.visage.distributor.exception.RenderFailedException: Request timed out at com.surgeplay.visage.distributor.VisageDistributor.renderRpc(VisageDistributor.java:290) at com.surgeplay.visage.distributor.VisageHandler.handle(VisageHandler.java:368) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at org.eclipse.jetty.server.handler.ResourceHandler.handle(ResourceHandler.java:287) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at com.surgeplay.visage.distributor.glue.HeaderHandler.handle(HeaderHandler.java:50) at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:521) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at org.eclipse.jetty.server.Server.handle(Server.java:564) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:317) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110) at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124) at org.eclipse.jetty.util.thread.Invocable.invokePreferred(Invocable.java:128) at org.eclipse.jetty.util.thread.Invocable$InvocableExecutor.invoke(Invocable.java:222) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:294) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:199) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:673) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:591) at java.lang.Thread.run(Thread.java:748)
When I try to render a head or anything for that matter under Distributor?

Hope you can help,
Thanks.

Server HTTP response 500

Since about 3-4 days im getting a HTTP error 500 when fetching a skin through the API, i dont know what is going on, looks like something with the visage server.

HTTP ERROR: 500

Problem accessing /head/d5cdaf3d3c8f4b7b97ce324f222e1ef6. Reason:

Could not render your request

This shows up in my logfile (using ServerListPlus on bungeecord) : https://pastebin.com/eb1veEKh

Choppy, over-sized renders.

Recently, Visage renders on my site (pulled directly from visage.surgeplay.com rather than self-hosted) have displayed as larger than normal, with previously smooth borders around the render becoming more pixelated and choppy, with a seeming black border. See below for a before/after comparison of the 512*512px bust render:
qetahrender
brokenexample
Is this intentional? If so, is there a way to revert it? Thanks.

Tried installing Visage on my Dedi :(

Hi, I've tried installing the dependcies but when I launch it, I get the X display error. The server is hosted at OVH and has no GPU, tried enabling the slave and software rendering, no luck.

Tried solving the X display error by entering commands but nothing again =(

Is there any tips to get it working on machines which does not have a GPU?

Service is currently down

Everything seems to work but if you try the service on the demo page or request an image via API, null will be returned.

A reason why you must allow lookup by username

I host BungeeCord server with plugin ServerListPlus. But my BungeeCord server is in offline-mode, so players UUID's are wrong and I can't get Visage user head image for server list favicon. Single solution is getting player head image by his username.

It's safe because server list icon updating every 5-15 minutes and if player will see old icon for example 10 minutes, it is not critically. Please, allow this ability at least secretly

LWJGL not in classpath

When running the 1.3.1 release as a slave:

@15:53:16.380           Main thread  INFO: Starting Visage v1.3.1 as a slave
@15:53:16.607           Main thread  INFO: Slave name is '55c4ee1bdac1'
@15:53:16.612           Main thread  INFO: Press Ctrl+C to shutdown Visage.
@15:53:16.616          Slave thread  INFO: Setting up LWJGL
Exception in thread "Slave thread" java.lang.UnsatisfiedLinkError: no lwjgl64 in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1889)
at java.lang.Runtime.loadLibrary0(Runtime.java:849)
at java.lang.System.loadLibrary(System.java:1088)
at org.lwjgl.Sys$1.run(Sys.java:72)
at java.security.AccessController.doPrivileged(Native Method)
at org.lwjgl.Sys.doLoadLibrary(Sys.java:66)
at org.lwjgl.Sys.loadLibrary(Sys.java:87)
at org.lwjgl.Sys.<clinit>(Sys.java:117)
at org.lwjgl.opengl.Pbuffer.<clinit>(Pbuffer.java:148)
at com.surgeplay.visage.slave.VisageSlave.run(VisageSlave.java:92)

RenderFailedException

I've a visage server placed behind a nginx proxy and when i request the front page, it says "It works". When i request /bust/Niklas i'm getting redirected to /full/256/e0276ad91cd64c8db8f7ff97e75c5982, but then it says:

com.surgeplay.visage.master.exception.RenderFailedException: Request timed out
at com.surgeplay.visage.master.VisageMaster.renderRpc(VisageMaster.java:293)
at com.surgeplay.visage.master.VisageHandler.handle(VisageHandler.java:445)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:118)
at org.eclipse.jetty.server.handler.ResourceHandler.handle(ResourceHandler.java:438)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:118)
at com.surgeplay.visage.master.glue.HeaderHandler.handle(HeaderHandler.java:50)
at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:383)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:118)
at org.eclipse.jetty.server.Server.handle(Server.java:512)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:291)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:238)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:53)
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:191)
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:126)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)
at java.lang.Thread.run(Thread.java:745)

I hope you can help me with my problem.

White margin around Face renderer

When using the Face renderer, there is a 1 pixel white margin around the skin. I know that it reserves some whitespace if the skin has a 2nd layer on the outsides of the front head, but even then it has excessive whitespace.
A possible workaround for this is to have an option so it doesn't render the 2nd layer further away from the 1st layer, so all whitespace can be removed.

Draw the skin into a framebuffer

As we learned in #1, Java2D is really really slow. We still use it in one place: to convert legacy skins to modern skins.

If we drew the skin to an FBO instead of using it directly, we could modify it. This would also allow an easy fix to #20, and would remove our one remaining Java2D slowdown.

Dinnerbone's head is upside down

or right side up, or whatever. It should be rotated the other way so that it matches his in-game appearance. Not a super big issue, but would be a nice Easter egg/hidden feature that makes someone's day.

Cache

Hello, I updated my skin like 3 days ago and the render got updated now.. But it is taking way too long? Is there any way how you guys can fix that? Like the cache stuff..?

My website is banned...

So my website is banned from using Visage... There were no warnings or anything.
(this is the only way i know how to contact you sorry if its the wrong place to put it)

Missing Transparency handle

If i have an transparent skin, minecraft renders it as black.
Visage renders it as transparent. (Skin: EinCommandBlock)

Blank images

I've started using Visage on a local test site for my Minecraft server. Essentially, I plan to get the initial image from Visage and to then cache permanently until the user invalidates their own cache manually (e.g. because they've had a skin update), thereby impacting on your traffic as little as possible.

However, I'm facing the problem that Visage is spitting out blank images more than 50% of the time, and seemingly at random. The 'bust' will work for one player, but the 'face' will not. Another player might have 'face' or 'head' working, but not 'bust'.

It's also broken on the Visage page! https://visage.surgeplay.com/ - see the screenshot I've included below.

The image returned is the correct dimensions but every pixel is transparent. So to a web application there is no easy way to tell if it was successful, but to a human viewing the images it's quite clear something is wrong.

Same result whether using UUID or username.

Thanks.

screen shot 2017-02-08 at 12 32 46 am

Does not render 3 pixel arm "alex" skin

Whenever you try to render 3 pixel arm "alex" skins, it renders them like steve. Try it on my skin, which is an alex skin, and you will see that it renders it like steve. Since it might not be able to auto detect alex or steve, what it could do is add /alex parameter thing to the end of the url

2D rendering is slower than 3D rendering

This is likely because it uses Java2D instead of OpenGL. It should be fixed to use OpenGL.

Java2D is probably incurring the cost of creating and destroying an entire GL context for every render, instead of reusing contexts like the 3D renderer.

Flipped Renders

Would it be possible to flip images horizontally?
Instead of

I would like it be able to have

possibly by adding ?flip to the end of the URL or something like that.

Custom head rotation?

Hello its possible to add a custom head rotation on render 3d or not Thank for reply!

Support for webp images

In a recent attempt of optimizing/reducing the amount downloaded resources per request to my website, I started converting all of my website's images to the webp format. Visage images are currently the only images on my website currently not served using webp.

I would write a PR, but I decided not to since I don't know what your stance is on caching two versions of an image .png for legacy browsers / backwards compatibility and the webp format.

Here's a link describing webp in detail: https://developers.google.com/speed/webp/

Giving a steve skin if an account does not exist

Hello, I like to use Visage but there is a problem: when an account is not found no image is giving. I am hosting an offline mode server and when a player does not have a minecraft license no skin is given. It would be great if instead a Steve skin would be given. Thanks

Option for antialiasing

Hello,
first of all, I appreciate your hard work and I'm very thankful for your renderer ๐Ÿ‘
But I wanted to ask if there's any possibility for antialiasing and if there's no option, I wanted to ask you if you please could add such an option^^ That would be amazing^^

Have a nice day,
DerTechNick

Username quota exhausted again

After pressing "Render!" you only get a broken/missing image icon.

FIXED: You have to use your UUID, Username doesnt seem to be working.

The ability to provide custom render instructions.

I think it'd be a great idea to be able to pass custom instructions through to the service.

An example:
If I wanted to have an avatar with his fist in the air whilst jumping (jump for joy), I could pass in some instructions that would say, how to render the leg (think of how Cinema4D and 3DS Max rigs work).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.